#making-mods-general
1 messages · Page 357 of 1
autochess?
maybe tower defense 
sure
but if you have this completely divorced from regular game world zone please stop trying to use NPC
alright Im getting silly now (its a fun and ridiculus idea tho)
among the vanilla holders for this kind of thing i feel Critter is best
they r tied only to an location, you get an AnimatedSprite on each, they are not net sync'd for better/worse, and you can implement whatever you want in draw and update
Companion is quite good if you want something attached to a farmer and netsync'd
I get that, but I want to keep my hopes and dreams of making chaos with the npc's lol
one day
u can also skip prefix NPC.draw to do whatever anim you want without fiddling with the base AnimatedSprite
worst case scenario I will use those algorithms to implement in my own game lol
the possibilities r endless but you gotta decide on the approach 
and whether you care about other ppl mod compat
tell me mr @lucid iron, how chill are you?
what
I don't know how to answer this
please don't ask vaguely threatening questions
pff
Chue is as chill as the square root of e
It's like 23 Celsius over here so not
i suppose
🤔 how chill is the square root of e...
late hours are killing me
chu is your name supposed to be pronounced "chewy"
Sure
No it's chu two point seven one.. m
There's no official ipa spelling
I love how this utterly random question brought a wave of more random things
Yeah but if you continue to ask me questions like that I'll have to politely ignore you 
I got enough confusion in my noggin already
dw its just my sleep deprivation speaking
Sleep is good, code more clear when awake i find
do i want to crash test another one of my mods before publishing or should i put it off until next week.. idk i kinda dont like uploading so many mods back to back
don't crash test it and publish it now
let the chaos commence
so @lucid iron maybe tas is the way to go after all...but how do I make it seamless with the npc
Gotta inject into update loop somehow 
sigh
and this is why we test before publishing....
Ah, smapi gore. Classic
fun fact the two issues were completely unrelated 😔 guess who just forgot to put a tile on the buildings layer
(i should add a fix for that to my map fixer
)
is it possible (for a beginner to modding) to make this fence from the town into useable fencing?
I opened another fence mod as an example but I have no idea which parts are which
is this right? 
!startmodding
From a little bit of looking around the wiki, it seems doable. I actually didn't know we could add new fences (as opposed to only retexturing them) but that seems possible. It might be simpler for you to retexture existing fences, but either seems doable.
Check the Content Patcher link here and then you would want to familiarize yourself with https://stardewvalleywiki.com/Modding:Fences
!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.
now that i'm more worldly (read: actually trying to understand why i'm doing what i'm doing), what's the reason that it's recommended to edit over vanilla maps when making custom ones
vanilla maps have tile properties already set up on the tilesheet typically
and the required map properties
(if there are any required? if not it still has a bunch)
ah makes sense
you could ofc set up all your animated tiles again
or make all the water ones have Water T or w/e
sounds like hell tho 
lol yeah no thanks
sorry, guys
What is it?
just feeling regretful. Thought it'd help to apologize to places I hadn't been active where I wanted to be. Sorry, community in general.
It's not the end of it to not be active, you don't have to apologise :) Instead, why don't you talk about what you would have liked to do here? Do you have a mod idea? Talking about your ideas might motivate you to dive into it - that'll be a better thing to do than apologise for nothing 
it keeps throwing the red error at every new day. I'm almost certain it's because of the mail triggers for having farming level 1, and having shipped three different mod items, but I can't seem to grasp where the problem is. can anyone else see what I can't?
or why the charcoal kiln won't accept hardwood to become the mod item Lye?
You can't list multiple items with PLAYER_SHIPPED_BASIC_ITEM. You have to repeat the entire thing. Right now it's reading your Shea Butter Soap as the [max count] argument and failing because it's not an integer.
If you want it to trigger if the player ships any of the soaps you'll need to use ANY.
ah, I wanted it to be once the player shipped all three of the soaps
That's fine, then it's just commas in between.
commas, that's what I stinking forgot XD
No, you still can't do it the way you have done it.
You have to repeat the GSQ itself.
so it's PLAYER_SHIPPED_BASIC_ITEM Current in front of each soap, correct?
"Condition": "PLAYER_SHIPPED_BASIC_ITEM <player> <item ID> [min count] [max count], PLAYER_SHIPPED_BASIC_ITEM <player> <item ID> [min count] [max count], PLAYER_SHIPPED_BASIC_ITEM <player> <item ID> [min count] [max count]
awesome, I did understand you correctly then :3
The only GSQs where you can repeat parts without repeating the entire GSQ is if there are plus signs in it
Like this one lets you list multiple special orders in the one GSQ: PLAYER_SPECIAL_ORDER_ACTIVE <player> <order id>+
that makes sense in hindsight
do you happen to know why the PLAYER_BASE_FARMING_LEVEL 1 is also throwing fits?
because when I made it PLAYER_BASE_FARMING_LEVEL 1 1 thinking it wanted two states like for PLAYER_FARMING_LEVEL, SMAPI extra didn't like that
Probably because you're missing the <player> argument that's supposed to come before the <min> argument lol
doesn't it default to the current player if that argument is empty?
Nope
It's a mandatory argument. You can tell because it's in angle brackets.
Also, the game knows which argument it is based on position so you can't skip them william-nilliam or they'll all go in the wrong places.
There's only one thing I know of that is an exception to that which is offset/laying_down in the schedule animations.
(Which isn't to say that's the only exception but rather that you should always assume the arguments' positions are important unless otherwise specified.)
ah, okay. so then I want current as my argument for that, so that it takes the local player into account, correct?
does that have any repurcussions if someone is playing with friends if I don't use host as the argument?
i figured out gift tastes on my own this time
now i just gotta write it all out and then move onto configs
awesome! hopefully you get done before your fingers get worn down into nubs :D
gift tastes are a lot of typing
its late so im actually on my break now 
I'm not super familiar with how MP works but since you're wanting to send mail to the current player it would probably go strange if your condition checked the host instead.
So yes, use current
awesome, thank you!
just one more question, then. I know I screwed something up on getting the charcoal kiln to accept hardwood to create lye, but I can't see what it is. do you know off the top of your head?
The fact that your required item ID has an extra parenthesis at the end probably doesn't help.
mmmm, yeah, that's probably true
I've never done anything with machines so other than that I am just comparing it against the wiki
let's see if trimming it helped!
hmmm, it worked for the charcoal kiln, but not for the oil maker, and I would have sworn that it would have been the same fix for both
I know that the oil maker works in general, because it's making sweet almond oil from the modded-in almond right now
oh wait
it's a zero, not an O
I'm illiterate! :D
eyyyy it works now XD
now I just need to make sure that the trees grow and fruit properly, and everything sells and turns into what it should.
thank you, Abagaianye, for your help with the borked GSQs :D
You're welcome ^_^
hokay, had a few more things that needed to be cleared up concerning old names that I forgot to update when I changed them to make more sense, but the real playtesting can now begin! hopefully nothing else will need changes and I'll be able to post it soon :D
Hey im trying to make my area that i added in appear on the menu map but im trying to follow the tutorial on the wiki and im not sure if im following it correctly since im not really familar with how the game works that much
are you adding your own area map, or editing the existing vanilla map to show your area ?
editing the existing map
(or at least trying to 😭
ok i'm not super familiar with that so i suggest finding another mod editing that and looking at how it's done
you possibly need to use targetfields too
You'll need to change the "Texture" values to match the wiki's example. If you haven't used "Action": "Load" elsewhere in your pack to load the map images, you need to format the texture fields like this instead:
"Texture": "{{InternalAssetKey: assets/map.png}}"```
Anyone free to help me with my house?
I'm trying to make a big one and made the sprite huge but it didn't like it so i made it only 272 px wide and it still doesn't like it 😦
Outer farmhouse
Your target area is listing the width as 442px. Have you changed that? Not just in the .png file but in the json ToArea field?
It's wherever you have your patch written. Which is most likely in the content.json but if you're using Includes it might be somewhere else.
Ok i will try something
"Try something" sounds like you might be just guessing what to do?
With tutorials xD yes i don't know what i'm doing, really.
Have you been reading the CP documentation so you can learn what patches are and what they're doing? https://github.com/Pathoschild/StardewMods/blob/develop/ContentPatcher/docs/author-guide.md
Some of it but ty, i'll have a look
In case the author guide doesn't clearly link you here, you will also want the info about EditImage since that's what you're doing: https://github.com/Pathoschild/StardewMods/blob/develop/ContentPatcher/docs/author-guide/action-editimage.md
Ah awesome thank you
Hey, so I’ve been having some reports of my mod not working on android (Harmony patch failing.) Is there any way for me to debug/fix this without owning an android copy of the game?
ive got someone commenting on my mod if i can increase the sell prices of the cooked items for the recipes i changed... i don't like touching sell prices...
Do you have a log
Log Info: SMAPI v4.1.10.3 - 1735840167 with SDV 1.6.15 build 24354 on Android Unix 33.0.0.0, with 23 C# mods and 15 content packs.
Ah does your mod patch daytimemoneybox
It's doomed then that UI bit is completely different on phone
Rip
Ask Pathos about the android decompile
Either that or find a friend with the android version and repeatedly send them builds until you've figured it out
ello ello finally woke up, I'm gonna try hooking the animations with an updateTicked event, is that a viable idea?
Huh... June is interesting (DP wise on Nexus)
I had basically the same amount of UDs as previous month... but almost twice the DP, wonder what happened
Is it new maffs
Yeah same here
I hope this means the various charities get more money 
I'm having trouble with the mod I'm making. I'm trying to replace an image, and when I get the image path wrong, there's an error message, as expected. When I get the image path right, there's no error message, but the image doesn't change
Maybe we got a bonus from the company sale
/lh
!json Can you please use the json validator to share your 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.
*You, and config.json or manifest.json?
I don't know what you mean by the "*You" bit. And neither, your content.json please.
I mean you didn't type My preferred pronouns, and I corrected you
I don't have a content.json, I have a ModEntry.cs
Oh, You're using C#. I'll leave it for the C# modders then.
Can you explain what image you are trying to replace
*You, and the player's body sprite, Characters/Farmer/farmer_girl_base
Ah it's probably the whole FarmerRenderer's special content manager deal
Gotta invalidate that i think
You definitely did the whole AssetRequested bits?
Easy way to check is patch export Characters/Farmer/farmer_girl_base
This?
Propagated 1 core assets (Characters/Farmer/farmer_girl_base).
I type that into the SMAPI console?
Sure is
Once it's exported check the png and see if it's expected
...huh.
The exported image is the one I changed, but the image I see in the game isn't
Yeah just FarmerRenderer things
I don't have much more knowledge about it besides it's weird™
Damn. I'm making a framework to modify farmer textures at runtime
Should check the decompile and see if it's getting cached somewhere
And do whatever u need there to make sure your texture makes it in
Yeah sorry i am on phone
But it is a different content manager right
I ran this.Helper.GameContent.InvalidateCache("Characters/Farmer/farmer_girl_base");
What if that but on the FarmerRwnderer content manager
Oh, it has its own? That's weird
No, you shouldn't need to do that.
It has its own but invalidate should hit all of them
Y'all got any FarmerRenderer documentation?
Nope
!decompile
FarmerRender is fun
If you want to make SMAPI mods with C#, one important resource is decompiling the game to read the game code. Here's how to do it: https://stardewvalleywiki.com/Modding:Modder_Guide/Get_Started#How_do_I_decompile_the_game_code.3F
!decompile
If you want to make SMAPI mods with C#, one important resource is decompiling the game to read the game code. Here's how to do it: https://stardewvalleywiki.com/Modding:Modder_Guide/Get_Started#How_do_I_decompile_the_game_code.3F
Gotta peruse the secret words
Yeah okay I'll boot up ILSpy
It's not obsfucated, very straightforward
I dunno if I would say "very straightforward" but it is human-readable
Just rmbr, gotta fight fashion sense and win eventually
Did fashion sense allow changing body in middle of game?
Is doom then, prepare to harmony patch it 
It's open source at least so not that bad to inspect and figure out where patch
Could perhaps even leverage it's features and add power to change body on a trigger action
FashionSense's source code is harder to read than the base game's
It do more things after all, base game quite hardcoded with farmer stuff
Imo, fine to just say "not compatible with FS" on mod and not worry about it. Depends on goal of mod 
if only stardew code could be very straightforward 
I think it's ok until it do any draw
But I'm inspecting draw code 😭
Then it's time to figure out which SpriteBatch.draw overload and wtf is this layerdepth maff
to be fair, the code isn't the part that isn't straightforward, it's the architecture that's sketchy at best
at least for dialogue and farmer draws yea
Dialogue syntax is hit hard by the string switch decompile shenanigans
hey i tried this and now im just getting a failed to load asset error in smapi so im not sure whats wrong 🥲
I always feel like it's simpler in the real source
!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.
oh I just meant the dialogue interface draw calls, but I imagine the string syntax must be its own ballpark
Please show us the json so we can help look
https://smapi.io/json/content-patcher/8d051ef183644b639acb357bc13343e3
other than like the version being out of date since i havent work on this in awhile, and the logname just being undefined i dont see anything that could help me like edit the world map in the menu
Line 42 "Texture": "assets/Maps/sidetownmap.png"
It either needs to be Internalassetkey just like 20 or get a separate Load
Besides that, i recommend not using custom location
Found it
public void textureChanged()
{
if (baseTexture != null)
{
baseTexture.Dispose();
baseTexture = null;
}
Texture2D sourceTexture = farmerTextureManager.Load<Texture2D>(textureName.Value);
baseTexture = new Texture2D(Game1.graphics.GraphicsDevice, sourceTexture.GetActualWidth(), sourceTexture.GetActualHeight())
{
Name = "@FarmerRenderer.baseTexture"
};
Color[] data = new Color[sourceTexture.GetElementCount()];
sourceTexture.GetData(data, 0, data.Length);
baseTexture.SetData(data);
}
so I've got my custom npc in the game, his schedule works, he reacts to the player digging through the trash, but his dialogue won't work when im just trying to talk with him
he just doesn't speak at all
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.
if you have a separate dialogue one maybe that one too
your dialogue target is incorrect
I think you need to Load instead of editData
you're editing something that doesn't exist (i think)
Okay
in your content json, load your dialogue Json and you wont have to do any editing in ur dialogue json
Okay I'm doing that now
anyone know why VS is throwing me an ; expected error for a specific line no matter what I do? I even removed the entire code and it still existed
so i just got a message from smapi that says i need a fromfile path to load the dialogue
Correct, load takes a from file, not entries, however the way you had it before is fine, your original problem is that in your edit data for the dialogue you're targeting Characters/Dialogue/Jx, while I assume your NPC's internal name is {{ModID}}_Jax
the "load" patch is in the content json
oh real i didnt see that 
do I need to make another include for my dialogue?
Loading it again is unnecessary, please keep the dialogue file as EditData and fix the target
If someone Loads a file directly they can't use tokens inside it. Since NPCs' internal names should be prefixed with {{ModId}}_, there aren't many situations where it's useful to Load it directly.
I've always used this way for my dialogue idk it's worked for me
what do i need to change the target to or how do I fix it?
Yo can I just do this?
Game1.player.FarmerRenderer = new FarmerRenderer(newBodyFile, Game1.player);
I load in Content, then just do all the dialogue keys in the dialogue json
im not entirely sure what you mean by tokens though sorry i still get mixed up with terminology
Content patcher tokens. So for instance you can't use i18n if you Load it and i18n is strongly recommended for easier translating.
I really don't recommend that
Lifetime management around textures is a pain enough
What's written in the Name field in your Data/Characters patch?
Recommend anything else?
ohh i see
ive found that i18n is easier to use in general, it keeps every line of text i write in one place XD
the log name? I don't have anything in there and i don't know what to put in the field
i cant believe i never used it before
ive not used i18n yet regrettably, but because having all the text in one place confuses me more 😭
No, not LogName, just Name. Can you show me your Data/Characters patch please? It'll be inside your dispos.json file.
Quick question, i observe some of other people's NPC event.json that all of them used numbers for their event ID, but the ones in wiki recommend putting other than numbers
Should i follow the wiki or should i figure a numeral unique ID for the event.json?
😅 i have a bad habit of making random folder and stuff to put files in, and next thing you know i have too many... even for modmaking, i can never find them afterwards because i dont know which folder titled "mod wips" my file is in 
Thank you for asking! Please do not use the numbers. That's the old way from before 1.6 because we couldn't use strings then. But we can now so please do that (and use {{ModId}}_ as a prefix to ensure they're unique - that's a token so you put it in exactly as I've written it, you don't replace it with your mod's id).
you typed it faster than me
Thank you!
Ah sorry no wonder you were confused. I was going off memory and my memory was wrong. Jx's internal name is {{ModId}}_Jx so you need to make sure your dialogue target is "Characters/Dialogue/{{ModId}}_Jx"
Fastest fingers in the West 
As I said: lifetimes are funny with textures as is
btw sorry Hazel if i confused you more initially...i was going off my experience 😅
i confuse myself half the time
My recommendation is trying to figure out why asset propagation isn't updating the texture like it is supposed to but 🤷
I can't give a more useful recommendation than that because I don't have the code in front of me.
does anyone have any good lists of music for the heart events? I can't find a good one while i'm writing my heart events and I just need a list of the music that i can use in game for my heart events
there's a music id spreadsheet
forgot to reply to you but the link is above
There's also Button's soundboard!!! To play them in game!!!!!
is that music, sounds or both btw? I was gonna mention it but then didn’t remember which lmao
do I put the name of the song in the event thing? like whereshould i put the song?
i believe its the first entry after you do all the preconditions for the event
okay
Yoba bless Button
amazing mod
"EventId/precondition/precondition": "musicId/viewport coords/actor positions
so would the music id be like AbigialFlute?
You should be using the event page on the wiki for event writing. They're very complex to attempt to do without the wiki page to help.
Yes but you've misspelled Abigail there
yeah, i knew that, i just can't see very well, my allergies are bugging me
Even after writing events for hours i check the wiki every 10 seconds
I've written part of the events page and I still refer to it constantly when writing events lol
endless gratitude to you for your contributions i dont think ive looked at single wiki page more
Hello! Anyone got an idea how to add a new sword using CP ? Can't find any documentation (github and wiki do not have that specifically), and every example content pack for a sword that contains Content Patcher uses format 1.1...
If any of you want to translate your mods I can help you to translate your mods from English to Spanish
Haven't done it, but here's the wiki: https://stardewvalleywiki.com/Modding:Weapons
Same for cp?
Yeah I believe so. I'm not an items person, so I can't help v much 😦
One thing you could do is grab a mod from nexus that does what you want, and see how they did it
That's how I usually start out, when I'm trying to do something completely new
Maybe this mod would be a good starting example: https://www.nexusmods.com/stardewvalley/mods/11105
Definitely uses CP, and is fairly recent.
Does that one add new weapons or just retexture
even better question does anyone have a youtube playlist of all the songs and sounds in the game that i could use as referance?
I think it is just a retexture
Not all of them, but here: https://concernedape.bandcamp.com/album/stardew-valley-ost
timestamps are in the desc
yesterday i just kept changing the code and running the event
Those are most of the music tracks. If you want the sound effects, you'll have to reference the wiki a lot
music tracks work for me
i’m also here to plug button’s soundboard mod, i’ll never use anything but that again when deciding sounds and music to play
most useful tool i’ve found as a mod author yet
format 2.0 :(
it’s 1.6 compatible which is the big thing
2.0 is recent enough that it's fine
anything format 2.0 or higher is good enough
you can change it to 2.6.1 (or w/e it is currently) and be just fine
i'm currently writing my four heart event for my character and i was wondering about the question fork1, if i have more than just one would i put like question fork2 and so on if i have more options for the user to choose from?
I recommend just don't use fork
i only lately got into modding but wtf it's sooo different, the difference is huge
question fork is fragile, difficult to use, and less useful than quickQuestion
how would I put that into my event?
Are you asking because you're looking at it on the wiki and struggling to understand it?
The difference between CP 2.0 and now is huge?
yeah, it's a bit confusing to me
the older formats is what i mean
not specifically one, but it just looks nothing alike, and i'm sure my pov here is poorly backed but that's how a guy with little knowledge sees, so i think that counts for something
I'm on mobile so it's hard for me to write anything for you but here's a very simple example event using a single quickQuestion with two routes.
"QQ1x2": "
continue/
16 29/
farmer 12 32 2 Penny 12 28 1/
skippable/
pause 1000/
speak Penny \"I shall ask a quickQuestion now.\"/
quickQuestion Question?#
Farmer answer 1#
Farmer answer 2
(break)speak Penny \"You chose answer 1. I will jump. Then the event will continue with its shared script.\"\\jump Penny(break)speak Penny \"You chose answer 2. I will spin. Then the event will continue with its shared script.\"\\faceDirection Penny 2\\pause 200\\faceDirection Penny 3\\pause 200\\faceDirection Penny 0\\pause 200\\faceDirection Penny 1/
pause 1000/
speak Penny \"The quickQuestion has ended. The event will continue.\"/
pause 1000/
jump farmer/
pause 1000/
end"
Huh, interesting. The only thing different that I ever really notice is the CustomLocations stuff being present in older formats.
why don't the guys in this server with knowledge about smapi modding make videos? this is all so gatekept, little documentation, no tutorials, absolutely no examples, etc..
it would help more mods appear
That's a bit rude
no no not in a rude manner
We actually do a LOT of work to create tutorials and update the wiki
I was talking about youtube videos
they usually have examples
There's way more documentation than for many games
unfortunately video tutorials get made redundant so quickly, and it’s a lot of work even just to update the text resources
^
fair
no one gatekeeps anything ill tell anyone who wants to commission me that doing it themselves is possible due to how much info there is 
I mean... if video formats are your jam, you can always make them yourself and upload them when you have the time/knowledge
(YouTube videos are a lot of work for something you can't copy and paste from.)
Speaking of knowledge, I have a quick problem. I have a set of lines in i18n that I would like to patch under certain conditions. Normally, I would just do dialogue patches, but these lines are parts of events. I don't really want to load different versions of the same event to change one or two lines
Is there a way to patch i18n gracefully?
If I load the base i18n, and then load another one on top, would that work?
like "default-patches.json"
Use a dynamic token to change which i18n key gets used
I wasn't planning on having two full default.json files. There are literally hundreds of lines of dialogue, and I only need to change like a dozen
if you're just using the i18n token you dont "load" the i18n in the first place
dynamic tokens is the way to go
i18n is not a Content Patcher system. it cannot be patched and cannot be altered. CP just has an i18n token that hooks into SMAPI's i18n system for your mod
"little documentation, no tutorials, absolutely no examples"
glances at the wiki
yeah the main wiki is insanely documented and the modding wiki has a ton of tutorialage
also every CP mod can be used as an example bc you can just read their jsons
Dynamic tokens feels a little icky for patching entire lines 😦 It's not just a name substitution or something. But alright
and 66% of all C# mods are open source
you're not patching lines
you're just changing which i18n token is chosen
Ohhhhhh wait. Yeah.
if you want, you CAN use the tokenizable string system, but that requires more setup
but here instead of doing like "Mon": "{{i18n: MyToken.1}} you do "Mon": "{{DYNAMIC TOKEN}}" and Dynamic token has its value set to either {{i18n: MyToken.1}} or {{i18n: MyToken.2}} depending on conditions
It's alright, I think I know what to do now. Thanks for the sanity check, guys
(for example)
So the line is speak \" {{i18n: line.{{playerChoice}}}}"
And the DT is:
"playerChoice": "default"
"playerChoice": "no"
When: {
HasSeenEvent: PlayerChoseYes
}
And the i18n is
"line.default": "bla bla default",
"line.no": "bla bla no"
Please excuse the most atrocious DT syntax in the world
Alright, got a little rejiggering to do, but I think it will be worth it. I've been head in the sand for a month on this mod
Looking forward to being done with it
I was typing frantically trying to get this done fast enough to still be relevant for the conversation while on mobile lol
Are you starting with C# on purpose?
eeeee just because of that
You're starting with C# because of the Stardew Valley wiki header?
the wiki talks about both C# and Content Packs. Content Packs are not C#. in fact, Content Packs have higher placement on the modding index for the wiki
(Am I too literal sometimes? Yes, yes I am.)
what do you want to make?
When I look into the modding guide it was talking about c# and etc
😭
Then you picked the wrong one by mistake.
what should I do
so, how would i start my questions?
You might still want C#! What exactly is it you're wanting to make as a mod?
I want to write a character but I can't even start the damn project page
I don't know what you mean, sorry. Type them?
yeah, like typing them into the event, would i need to change my event format?
i can send the .json if you want to look at how i have it currently
From what to what?
you add it like any other event command
If you're asking if you'd need to remove any existing question fork commands, yes you would.
Just rewrite what you've got but with the quickQuestion format
so what c# is exactly used for in modding
okay
ohhhhh okay
It's also used to add new behaviors
Doing new stuff that the game doesn't already do. Adding a new NPC is just using the existing game systems to add new data, so no C#. If you wanted your NPC to - I don't know, run onto the map the player is on and give them a fairy rose every three IRL hours you'd need C# because the game can't already do that.
(C# modders don't criticise my example just give better ones
)
But npc is already a exposed to content behavior and thus don't need whole new c#
If fancy stuff needed then toss in the c# later 
thanks for informations, everyone 😭
!npc we have resources specifically for making NPCs including a step by step tutorial you can follow
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!
.....agghhggv
have you noticed we have an npc command by the way
Atra you owe me another drink!
yoink
now I'll try that json thing like you said and maybe after a few months could try c# things before college starts, thanks for the command too
so i was looking over the quickquestion format and i am still confused on how to replace the question fork with the quick question
Did you look at the example I sent you?
!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.
put it in here
pls do not send giant jsons in here
ok one sec
and paste the link
yes yes soghi soghi didn't know
however im guessing you forgot to set the DisplayName field
Name =/= DisplayName
ohh
the Name should be the same as your entry key, its an internal name for game code use only
and for the effects, are they crrectly implemented?
DisplayName is whats shown to the player on the screen
i dunno. seems like it but i dont know how weapons work exactly
it has your correct min and max damage
i did look at it and i was wondering if i needed to make it exactly like that but with my info
so Name should be PaleReaper
i just assume the other stats have some sort of Calculation applied to them
like the mods.DH.PaleReaper or smth
name should be Mods.DH.PaleReaper_PaleReaper
literally exactly the same as your entry key
also what size should the pic be
then add a DisplayName line with whatever you want the user to see when they hove over the weapon i.e. Pale Reaper
32x32 is weird
16x16 if i had to guess
the pics on the shop for the other items look pretty well defined and sharp though
Hello!
I am still trying to get my NPC event to work. The event stops working when my question apperance. I would really keep the question in that format since the answer would affect both friendship, but also the remaining event..
Does anyone understand why it does not work?
Log Info: SMAPI 4.1.10 with SDV 1.6.15 build 24356 on Microsoft Windows 11 Home, with 23 C# mods and 53 content packs.
Suggested fixes: One or more mods are out of date, consider updating them, SMAPI is out of date, consider updating it
!json
those are furnitures
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.
furnitures are bigger
Well it depends what you ultimately want your event to do but to get you familiar with how it works yes I think you should make a backup of your event the way it is now and then copy mine in instead and run that, and then slowly change each piece to your own writing instead so you can figure out what all the parts do.
upload ur json to the validator
the json does not find any errors
Hey there, don't need your SMAPI log. Try posting your event code to smapi.io/json and share that link
its for us to look at it
if you want to double check what size a weapon should be, you could look at the vanilla weapons in your unpacked files
ive never worked with weapons before, so i may be wrong. they might be 24x24 or somethin for all i know
good idea!
alright thanks!
i'll find the unpacked files somewhere in the stardew valley folder right?
You need to unpack them first
yeah but it only looks like this hehe https://smapi.io/json/none/1a38ad7641104cd884f57ba2c991a904
I'm avoiding doing the command so we don't get a repeat of before lol
the JSON validator will only find syntax errors aka if you typed something wrong or theres an invalid character. it will not tell you if there are errors in what the json is actually trying to do, bc it has no way of knowing what the data you're trying to edit is supposed to look like
yea yea it's fine i'll look up how to
You have to remove your multiline comments before you submit it
heres a fixed link:
https://smapi.io/json/none/08e9fc868d6c426f8d7b40869279c589
(it bugs out with comments at the top)
OH THANKS ❤️
(thats not somethin you coulda known so dont sweat that one)
!unpack
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!
my idea is to make it work kind of like pennys event
(i dont know if you can use regular dialogue question syntax inside dialogue in an event? <----- thinking out loud in the hopes an event expert will chime in/correct me)
I can't help with finding the problem because it's too hard to read on mobile but you don't have to keep the $q approach to preserve the friendship changes because you can just use event commands to change friendship anyway.
You can use regular dialogue question syntax in an event.
You can
what happens if you use $e
(i typed that before aba edited their msg
)
oh ok!
Yup sorry missed a word
i rmb trying to use $b so many times and my dialogue shows up with the little gold symbol and then b
in an event or regular dialogue, bc if you mean regular dialogue that just means you did somethin wrong
event
oh okay intresting about the friendship
i woulda thought $b would be fine 
one of these days maybe ill actually Write an Event and find this stuff out
events are a pretty big blind spot for me
them amd machines, mostly
I can check what you've got now when I'm on my computer but that will not be for...8+ hours
I had the $b issue before but it was because I forgot to put the # around it in my dialogue entry
Machines are basically unknown to me but I have explored a great many event things
i did have that as well in regular dialogue
so is what you showed me just the quickQuestion, or is there a whole event side that i need to look for?
omg thank you!! ❤️
The SMAPI log says this?
An error occurred in the base update loop: System.Collections.Generic.KeyNotFoundException: The given key 'event_drunkcaregiver1' was not present in the dictionary.
at System.Collections.Generic.Dictionary`2.get_Item(TKey key)
at StardewValley.Dialogue.chooseResponse(Response response) in D:\GitlabRunner\builds\Gq5qA5P4\0\ConcernedApe\stardewvalley\Farmer\Farmer\Dialogue.cs:line 1623
at StardewValley.Menus.DialogueBox.receiveLeftClick(Int32 x, Int32 y, Boolean playSound) in D:\GitlabRunner\builds\Gq5qA5P4\0\ConcernedApe\stardewvalley\Farmer\Farmer\Menus\DialogueBox.cs:line 353
at StardewValley.Game1.updateActiveMenu(GameTime gameTime) in D:\GitlabRunner\builds\Gq5qA5P4\0\ConcernedApe\stardewvalley\Farmer\Farmer\Game1.cs:line 5082
at StardewValley.Game1._update(GameTime gameTime) in D:\GitlabRunner\builds\Gq5qA5P4\0\ConcernedApe\stardewvalley\Farmer\Farmer\Game1.cs:line 4269
at StardewValley.Game1.Update(GameTime gameTime) in D:\GitlabRunner\builds\Gq5qA5P4\0\ConcernedApe\stardewvalley\Farmer\Farmer\Game1.cs:line 3454
at StardewModdingAPI.Framework.SCore.OnPlayerInstanceUpdating(SGame instance, GameTime gameTime, Action runUpdate) in /home/pathoschild/git/SMAPI/src/SMAPI/Framework/SCore.cs:line 1094
does anyone understand?
$b definitely works in events, but as a dialogue command it has to be the start of a delimited item.
# is the delimiter in dialogue strings, so you need "some speech#$b#next dialogue"
- please use the smapi log uploader
- you dont have an
event_drunkcaregiver1dialogue key in your characters dialogue file
!log
Important note: Your computer username may appear in the log. If your username is your full name, please be aware of this before uploading it.
Please share your SMAPI log file. To do so:
- Open this page: smapi.io/log.
- Follow the instructions at the top of the page to upload the log file. (Don't copy & paste from the console window!)
- After uploading, it will show a green box with a URL to share. Post that URL here.
Please do it even if you don't see any errors. This has useful info like what mods and versions you have, what the mods are doing, etc. If the issue didn’t occur in your last session, please load the game to the point where the issue occurs, then upload the log.
ahhh this is so helpful
#$e# works the same way
hmmm didnt know i had to, will try...
I got the animations working using a static queue... at least I know what I'm doing now to convert it into instances for multiple npc's
shouldn't be that hard right..?
is this consideration in the event wiki? i dont remember seeing it
what i learned from the dialogue wiki page is that # separates two commands
it does
but $b is one
$e and $b are commands
and usually in dialogue i dont have to surround it by #
the dialogue itself is also a "command" for splitting purposes
you do
you must always separate it with a #
That's an entire event. Penny's dialogue explains which part is the quickQuestion. Also since I write events multilined but quickQuestion doesn't work in multilining, you can tell them apart by looking for the bit where all the commands are on the same line.
However, if you can't read what I shared, you might need to slow down a bit and focus on understanding events at a more simple level because being able to read and understand each part of an event is pretty important for being able to make working ones. Like have an event that's just the starting commands, one move command, and then an end command. Then add one more command to it, and so on.
{ TODO. Stands for "breakSpecialCharacter".
one of these days i'll fix this one and explain that this is what$bis doing
i understand the basics of the events and the ways to do it, fork was acutally working really well for me with the exception of the farmer walking off the entire screen and the event continuing
so in regular dialogue $e indicates you have to speak with the NPC again for the next line to trigger
in an event would $e just close and then open the dialogue box for the next line?
i think if there's an $e in an event speak the following text just doesn't appear. use a second speak command to get a new box/animation
Usually, the farmer walks off the screen because of a move command that sends them into a place they can't go (like a wall). In my experience, anyway
(move can send a character into the void if you have previously used positionOffset on that character, because the detection of when to stop is a bit fucky)
so $e shouldn't be used then?
better to end the speak command and use a pause imo which has the added benefit of you being able to control the beats of the conversation
correct, there's no benefit to doing so in an event. in regular dialogue it's fine (requires a second interaction)
yeah thats what ive been doing, i was just curious
THANKS EVERYONE ❤️ it works noW!!!!
interesting
i don't think i used the positionOffset, but if you need to see the link for my .json with the heart event to help, then i can send it
move is picky in several ways. things i’ve found that have caused errors:
- mixing move and advanced move
- not allowing the actor enough time to finish their move before another command happens
- trying to move them only one file
I have had /move send characters to the void before when I had the number of tiles moved too high without a pause after
Which would meet the second bullet point there
/move seems to ignore collision in my limited experience, so if you send them too far, they will go past the wall of the room.
so after i move my farmer, i should put a pause or should i do individual moves like 1 0 2, then 0 3 1?
if you don't give the optional true to avoid it, move blocks the event loop waiting for the move to finish, so normally you do not need to pause afterward
Then maybe something else was messing with me there, ichor
All I know is that reducing the number of tiles I moved fixed it
(move is at least moderately cursed and i avoid it in favor of advancedMove whenever possible)
Without adding a pause
how would i use advandedMove?
I never ever use move except where advancedMove is the one being cursed and then move mysteriously works.
https://stardewvalleywiki.com/Modding:Event_data advancedMove is listed in here. it's trickier to use but gives better results in my experience
note that unlike regular move, advancedMove does not block the event loop, so you must pause or do other things to allow time to pass
could i use an emote to pass time?
sure, anything you like
anyone has any idea why my custom animation which is mostly working (using npc.Sprite.setCurrentAnimation, and in the event hook animateOnce to check for finished) with cleanup back to base sheet sometimes bugs out and snaps instantly back skipping the animation?
so i looked at the example on the wiki and it said that you can use true or false for the loop, so what would it do if i put in either one?
//Sam will move 5 spaces to the right (end up looking right), and THEN emote
/move Sam 5 0 1/emote Sam 56
//Sam will move 5 spaces to the right (end up looking right), but will also emote while moving
/move Sam 5 0 1 true/emote Sam 56
The last is equivalent to:
/advancedMove Sam false 5 0
The "false" in the advancedMove call is to prevent him from looping that advancedMove call over and over
The "true" in the "move" call was to basically allow action to continue while the move is being executed
so putting true would make them pace, essentially?
Not quite. He'll keep moving right
If you want him to pace, that would be:
/advancedMove Sam true 5 0 -5 0/
Or something like that
(Move 5 right, move 5 left). True to loop
Probably good to put a pause in there as well:
/advancedMove Sam true 5 0 1 1000 -5 0 3 1000/
(Move 5 to the right. Look right (1) for 1000 miliseconds. Move 5 to the left. Look left (3) for 1000 miliseconds. True to loop)
okay
so, i want to animate my character and i don't necessarily know how to do that? do you have any advice besides a wiki?
Animate how? In an event?
yeah, in an event
you use /animate
Unfortunately, that's all about frames and numbers. It really is a good idea to look through the vanilla events for "animate" calls to use as examples
what if i just want to use a certain sprite for the event?
For example, look at Shane's 2 heart event in the forest. There's an animate loop of him drinking a can of beer
Or Seb's 2 heart event in his room. Pretty sure there's a loop of him typing on his computer there
that would be the showFrame command
i ran through my event, it was working fine, but it didn't show up as a dialogue box with the portrait, how do i fix it?
I'm no events person, but if you put your code into the json validator and share the link here then someone who knows events better can help debug that
!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.
Is Jx the full internal name of your NPC?
yeah
Okay, so it's not {{ModId}}_Jx or something in your Data/Characters file, it's just Jx?
Your portraits are loaded to Portraits/{{ModId}}_Jx so you need to use {{ModId}}_Jx in your speak command
Because that is your NPC's internal name/the identifier that tells the code what NPC the portrait is attached to.
/speak Jx doesn't find a portrait because there is no NPC with that ID 🙂
okay, thanks!
thanks everyone for the help with the event :)))
Her portrait is beautiful! 
Didyou make the portrait yourself?
To add a conversation topic after an event and for it to work, do i just need to include the addConversationTopic event command in the appropriate command and edit in the appropriate dialogue?
Yes
ty!
Yes!! thank you so much ❤️
Anyone know if it is possible to pipe more than one token into i18n at a time?
{{i18n:Default.action |Token1={{Token1}} |Token2={{Token2}} }}
I want to ask, for the "Format", is it 2.7.0 or 2.4.0?
latest version of content patcher
if im making an event like heart event, am i supposed to use $b to have the dialogue continue on another box, and if so, how do i format it? Like "It's a nice day today.$b I wish I had some shade to sit in."?
okay, thank you
this should work yes
I dont know what im doing wrong
https://smapi.io/json/none/ac8bdd8929b34292a5d263cb09c8f355
still getting the error message
[Content Patcher] Can't apply image patch "Mega House > EditImage Buildings/houses #2" to Buildings/houses: target area (X:256, Y:96, Width:272, Height:384) extends past the right edge of the image (Width:272), which isn't allowed. Patches can only extend the tilesheet downwards.
that sounds like your houses picture is too wide?
yes but im trying to make it big
then you probably need to Load it as a replacement
are there smapi commands that can control the game update loop? Like for example minecraft did where you can freeze ticks and advance them by specific amounts or speed/slow the tickspeed
EditImage wouldn't work
oh okay ty
I'm suspicious about whether farmhouse replace texture would work but if u do try it then you need to do editdata to swap both texture and sourcerect
next step is Data/Buildings
Farmer lives in a big ol church
it may work, it may not - a lot of farmhouse bits seem somewhat dehardcoded in 1.6
are you trying to turn stardew valley into graveyard keeper
These look so cool 
im trying to make myself a castle and the church was about the right size so im using it as a placeholder
I wanna see the whole buildings.
me too 🤣
Yeah i think it may be possible to keep footprint the same, but make the texture much bigger
Dunno how it'll work across upgrade levels tho
i would keep it the same XD
hi @lucid iron, Ive got the animations working except sometimes they get skipped and snap back to the default sheet, Im suspecting that animateOnce is returning true instantly for some reason
I'm glad you are having fun
tell me more
does anyone know how to make options in heart events raise or lower the friendship points?
[[Modding:Buildings]] + unpack Data/Buildings
Size + CollisionMap are (some of) the relevant fields
ty!
the command is /friendship NPCName <number>
it can take a positive or a negative number
I was thinking u just change source rect and draw position actually
That will make it look big but keep footprint same
you mean the collision area would be still small?
where would i put it if i was trying to put it with a certain option?
Yeah
still better than nothing i guess
im using fork because it works better for me
If the goal is actually make the collision big too then change Size
My consideration is just compat
alrighty im just struggling with the correct syntax
then you just use it like a normal command. if it's supposed to happen in the fork put it in the fork, if it doesn't happen in the fork then put it in the main event after the fork
Hey y'all! Does anybody know how can I modify a custom map/interior to make it seasonal and recolor compatible? ><
Are you using any custom tilesheets?
As far as I know, they are all vanilla (outdoortilesheets). I'm modifying a mod for personal use but I'm having trouble figuring things out cause it's my first time
If it's all vanilla sheets then there's nothing you need to do 
Just have to make sure to not put the sheet in the mod
So that it loads from game content
would I put it at the end of the fork? Like after the dialogue and actions?
you can put it anywhere you like, it doesn't really matter. the player won't receive any notification or be able to check the heart level until after the event is over
thanks
would i also need to put the < > around the numbers?
Can you please look at this code
"Action": "EditData",
"Target": "Data/Buildings",
"Entries": {
"{{ModId}}_farmhousebig":
"Name": "{{i18n:Building.Name.FarmHouseBig}}",
"Description": "{{i18n:Building.Description.FarmHouseBig}}",
"Texture": "{{ModId}}/FarmHouseBig",
"Size": {
"X": 28,
"Y": 24
},
"CollisionMap": "
XXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXX00XXXXXXXXXXXXX
",
},
json says its not valid
pls use the validator
no, i was just using those to denote that it's a required field like the wiki does
(also note that what you're doing is adding a separate building to Robin's)
.< i found some guide..
if you want to edit the default farmhouse you'd use target the Farmhouse entry for editing
guys i need some help, i have my mod mostly contructed and i wanted to run it in the game to see how its looking but i keep getting the same error. '[Content Patcher] Could not load content pack 'my mod's name': content pack doesn't specify the required Format field..' I'm not sure what the problem even is at this point lol. i am new to this so maybe its something simple?
i guess im attempting something too hard, idk what to do
I'm assuming eveyrthing async and while loops are a no no with the game loop system?
are you familiar with editing assets with Content Patcher
just a little
!json please share your content.json using this site
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.
okay thank you!!
Monogame is not thread safe so u can use while loop all u want
start by looking at Data/Buildings and identify which fields in the existing Farmhouse entry you want to change
😭 im too stupid for this
as chu mentioned you probably want to edit the draw position fields (SourceRect and DrawOffset)
ty but i will leave it for now, its too advanced
I suppose you can start small
make a patch that uhh changes moss soup's description while keeping everything the same
that's basically what you'll be doing with content patcher's edit data actions, to edit data
i will stick to my furniture for now
retextures are easy yes
but once you learn the rest of CP literally the entire game opens up to you
well maybe not the C# bits
tl;dr you got this, if not now then eventually
with BETAS harmon-
fear
ty for all help, Selph
I do wanna find out if this would work
🙂
glanced at the source code, it seems like it should (it moves the source rect down by one SourceRect for every farmhouse level, not any hardcoded coords)
the big house dream is real
Time to yoink big castle from spriter resource
i shall report back in few hours
Incidentally i wonder about legality of stuff on spriter resource most of it is just unpacked from other games right
the legality is "dont be noticed"
i planned to draw my own graphics afterwards
so far i just tweaked the church if you want to use that
it was surprisingly colourful
I'm at a complete loss, I have no idea what causes the animation to be considered finished and snap out of existence after just a few ticks irregularly, it happens only sometimes
is there a .net wrapper type that just stores a struct in a class? (e.g. for the purposes of satisfying : class bounds)
if there is one i can't remember what it's called
don't they also have stardew stuff without permission? so dubious presumably 
there is a whole section for SV
yeah, we don't recommend using it for practical reasons (you have the actual files right on your computer ready to use haha) but regardless, the legality is probably very sketchy 
only as placeholders
I see no issue with it. 10/10
i got an error when i try to load in my character and im a bit confused what it needs me to fix
the lakes of blood are a nice touch
*cranberry sauce
so something i dont think is changeable is the mailebox position
oh nvm its an action ez
well u can draw it however u want im doing this for the bit
Just bumping this so it doesn't get drowned out 
hm nvm mailbox position slightly hardcoded
the action can be moved, but not the actual bubble
check your lines 5 and 6, like the validator says. You opened up the section for the 6 heart event but then never closed it
hello, i dont suppose anybody knows how i would go about changing hairstyles 1-56 so that they look for a unique left sprite do they? hairstyles 57+ have this functionality in HairData.json but i'm not sure where to find the first 56 of them
@lucid iron Quick question for you. In the description of MMAP, one of the bullet points is: "Trigger when farmhouse is upgraded". Does this mean, "trigger something when the farmhouse is upgraded" or "trigger the actual upgrade of the farmhouse" ?
do you know about trigger actions
what are you trying to do
I have read about them. So it is saying that the upgrade becomes a trigger?
yea, it is that timing specifically for moving furniture
Gotcha, thank you
trying to add unique left sprites to the hair sprites that lack them (the ones in hairstyles.png)
i figured there'd be a mod for it already but i couldn't find it... so i thought i'd try my hand at modding
does it have to be in character menu? you could import them to fashion sense and do it there
the bubble should just draw above the ActionTile if it exists, no?
Farm.draw calls Game1.player.getMailboxPosition which calls Farm.GetMainMailboxPosition
(it does not do that for Cabins)
and Farm.GetMainMailboxPosition then looks for a map property (if it doesnt exist it becomes a default) and then overrides that position with the ActionTile
(if the action tile exists)
i'd rather not have dependencies since it's just changing one thing... and i just need to be able to change them to accept a 4th sprite, which doesnt seem that hard for the hairstyles that are listed in HairData.json
i also have no experience modding and am new to stardew valley so sorry if im a tad inept
looks right to me 
Is it possible to set the farmhouse upgrade level without going through Robin?
uhm, what does it mean if a tas displays as a bunch of green-orange squares?
debug hu 0/1/2
i've figured things out up until this point, and got a test sprite into the game, but you can probably see what went wrong here
Can I do it in a mod?
not with CP
i dont think anyone's made that trigger action
i don't think fs dependency will kill this, in fact i think it's more suitable to your needs in like every way compared to without
can vanilla hairs have 4 sprites normally
not wanting a dependency isnt always bc of a worry itd kill a mod
yes
@red egret https://smapi.io/json/content-patcher/73ca07c4da6a4f0e92b94a0fe36da37d the megahouse
HairData.json defines if a hair style has a unique left side so it might be necessary to edit that to get a hairstyle to accept an added sprite
i'd rather my mod not need to depend on anything, i've played skyrim where half the mods require a ui overhaul mod just to access mod config options, but i dont want to use that ui overhaul mod 🤷
i understand there are some times where a dependency is definitely recommended but the option seems to already be there, just for only half the hair styles
(i was on your side of that)
if its feasible with vanilla and CP then an FS dependency is definitely overkill
and yeah, i figured this much out, i know what all the stuff in HairData.json is about, its just only for hair styles 57+ (the ones in hairstyles2.png, which are the only ones with a unique left sprite)
hm theres no hair data page on wiki
i could probably figure out how to duplicate the hair styles to give them a 4th sprite and add them in, but then there would be like 130 hair styles to click through
yea i mean, never moved to standalone page
i believe if you just edit in the right index game will try to use it
you know how2 EditData with cp?
yeah, so you'd have to edit HairData to include whichever earlier hairstyle so it also had an entry in there
thats what i was trying to do, but from my understanding it needed a Target to edit, which i couldn't find for the first 56 hairstyles
again im new to modding
the Target is just Data/HairData
theory is that let's say this hair is hair 58 (idk real number)
do editdata targeting Data/HairData and add entry "58": "slash delim hair data here"
Wow, you did it! Amazing!! It would take me a million years, lol. I will try it out tmr, i'm off pc now. Thank you so much!
just add one on like this?
Oh shoot. Because it's a Global Token? So it's not possible to say "when X condition is met, set Farmhouse Upgrade Level to Y" ?
you don't need to duplicate the existing entries
its not a token at all and has nothing to do with it being global
there just is not anything to make it happen
there is no "set farmhouse upgrade level" thing you can do
(clarification: there is a token for it, but the actual variable that holds the upgrade in the vanilla code is not a "token")
you cannot set a token
a token is just a thing that reads data from the game/a mod/whatever
its not something you manipulate. you read from it, thats it
i wonder if it is as easy as add trigger action to set Game1.player.daysUntilHouseUpgrade.Value
Set to 1 so that it upgrade overnight
Otoh it is probably easier to just change robin house upgrade dialogue to like
Ill cleanup your house for 10000 money
ah yes, grandpa left me with his old dilapidated farm... and a mega church taller than every pelican town building stacked together
Robin and Lewis will still comment it's a bit rickety
my new mod, grandpa's underground cult,
hi friends, how does one open a .dll file?
I tried opening it via "Visual Studio Code" as well as "Visual Studio 2022"
I get this error
Got it, thank you
heir moves into the ancestral land
a dungeon
town with saloon church hospital
grandpa is final challenge of the game
what are you trying to do
It all fits trust
you either need ilspy or (much much more preferable, if possible) hunt down the source code
you cannot open a .dll to edit it*. however you can use ILSpy to view a decompiled approximation of what the code was
(if the source is available then yeah as selph says, use that)
I was hoping to take a look at someone's code for an example
I also want to look at the game's code (but it's possible I'm looking in the wrong game file) (I want to add a mod)
If you want to make SMAPI mods with C#, one important resource is decompiling the game to read the game code. Here's how to do it: https://stardewvalleywiki.com/Modding:Modder_Guide/Get_Started#How_do_I_decompile_the_game_code.3F
Can u tell us what kind of code u want to know about
Hmm, that might work. I'm working on my "clean up and fix your own darn farmhouse mod". Maybe I can make the dialogue change depending on how much the player has accomplished, so the price keeps going down
I want to add events, items, new gameplay storyline, character events, and quests (I was under the impression I would need C# for this)
The price is also pretty hardcoded
(well depends on what you mean by 'new gameplay storyline', since that's rather vague)
!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.
(but yes, it's all possible with just CP)
I'd say start with just content patcher, when you are familiar with what can and cannot be done you can do the c#
Hi all, question: to get doors to swing in an interior map, is this the only thing I need to do? set it up in tiles as custom properities: doors? I kept testing it and it wasnt swinging, and my coordinates are correct. Wasnt sure if I was missing something else...
This is a mildly advanced guide for modders that assumes familiarity with Tiled, Content Patcher, and map modding fundamentals such as the difference between Map Properties and Tile Properties.
Interior doors, such as the one in Figure 1, are interactive map elements with hardcoded behaviour (see InteriorDoor.cs). There are three types in the b...
thank you!!
I'm essentially tacking on a whole game to the game lol
The storyline would be along the lines of creating quests to unlock different temples of each element to gain power from them to learn different weapons that I would be adding. all new maps and a mini town as well
yea i'd say 90% of what you want can be done via content patcher
10% is the special weapons stuff
do you mean like this? i dont see how this would alter the hairstyles and not just add a new one though
(and 5% of the 10% of weapons can be done with CP)
(maybe 10% if what you want is not actually all that special, code-wise)
so in the decompile, the game attempts to grab info from Data/HairData by the index of the hair
oh that is such a relief to hear
I also was hoping to change the mechanic in the sense of not passing out, but I was informed that there is an existing mod for that
i should specify that i made 58 up and it's probably not the right number
you need to close your { with a } in Entries, too
ah... so i just need to set the index to the hair i want to overwrite with my own sprites
there's also advanced melee framework for some fancy weapon effects, so that's maybe another 5%
yea thats the theory
i would say using another framework is not CP 
mm alright, ill see how it goes, ty for the help
yea do let us know im curious
would that 5% be in the c# (sorry I'm very tired and brain is moving a bit slow haha)
Advanced Melee Framework lets you do more stuff with just JSON
cant give accurate number guesses without knowing exactly what you want to do
(and i dont know all of what AMF can do anyway)
oh yeah was just continuing to use the example of 5% to keep track of convo
i'd say focus on the 90%
so thats making npcs, making maps, adding quests/special orders, writing all the text stuff
would I be able to create a new projectile weapon as well? like a magic wand or something
oh thats vanilla
ohhh I didn't realize they had magic weapon spells in vanilla game
ooo okay yeah I definitely take on too much all at once sometimes, I just try to prepare for what I'll need since I'm not very familiar with C#
I'll keep working on those aspects first 
the projectile feature is funny i have no idea why it's added and vanilla never uses it afaik
wait wut... I obviously have not looked in any detail at your bagged milk mod (shame on me)
do they use it for ||the meowmere||?
I mean there's clear signs that ^ was supposed to do more but that it ultimately wasn't I thought
that's hardcoded funnily
I don't think it shoots projectiles (in Stardew)
dw no one in the 100 udls found it 
oh wait killing enemies with it actually does sparkles huh that's more than the 0 special things I thought it did
or if they did they didnt tell me
why is it [leaf]
canada
i wanted to see if smapi is ok with emoji and it work just fine 
alas pathos said no fun allowed in the unique id
Hello, when I'm doing animations during an event, I'm looping the animation with the same start and end frame but in between the end and the next loop, there's another frame not part of the loop
@twilit quest
i added the trigger action mushymato.MMAP_FarmHouseUpgrade
it makes house upgrade overnight just like in vanilla
Oh my GOSH
You are my hero! ❤️
Thank you thank you thank you!!!
no luck, i was able to find the IDs for the hair styles in save game data upon starting a game with said hair style, but couldnt get the changes to appear ingame when setting the entry to that ID, of course it's very possible, if not likely, that i'm doing something wrong, but not really sure how to go about making it work 🤷
i'll probably try again tomorrow
in this example it used the first sprite from the hair 1 row below cus i didnt do any image changes
if u replace Characters/Farmer/hairstyles entirely with ur new texture arranged like this it should work i feel
perhaps better to do new texture tho (which will work as long as you load to Characters/Farmer/blahblah
@wanton pebble: if you're still on the hunt, to look at Stardew UI for UI options for things (150d ago)
uh?
what are you trying to do
mod
please be more specific
I believe that anything is possible so long as you put your mind to it
just need to hear that every once in a while is all been a rough day for me in genera
I feel that tbh
Remind me in 150 days of this again
oh my goooooooooooood agentlyoko fine (#6759759) (150d | <t:1764550646>)
Keep ur chin up! Fall down seven times get up 8
i thoug we used c sharp to make mods not java
SMAPI uses C# yes
just want to find and exmaple of where to start
SDV was also originally made with XNA, a C# library
(it still is)
sorry jsut dont know enough about code yet]
either way there is no java so im not sure where you got that from
there is javascript object notation, though, which is json
!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.
the majority of mods do not involve coding at all and only need json and Content Patcher
well im new to jsut c sharp and modding in genreal
but trial and erro are backbone so
Hey all, is there a way to test out if a new NPC I created works late-stage? like, testing out its 8-heart event, other events later in the game with them? im assuming yes, just didnt know what the resources are
you can test any event using debug ebi [event id here] in the console window
that ignores any preconditions
Thank you!
(without the [], to be clear)
check out here for tons more like that: https://stardewvalleywiki.com/Modding:Console_commands
Oh thank you! Appreciate it. Added it to my bookmarks on stardew resources haha
you may also like the mod Fast Forward for fast forwarding through an event and CJB Cheats Menu and CJB Item Spawner for quick access to cheating lots of stuff for testing. I think that's all that comes to mind right now.
good to know!
Oh yeah, Event Tester, too
so how did you all learn what a code of stardew game migth say for example food prices
Don't need fast forward if you have event tester, too
By unpacking the game data. It's all in easily readable json.
what about your own spirte what about c sharp langauge
What are you asking specifically about the sprites?
The C# is the same. We look at the decompile - but that's only for the people who want to do C# mods which is the minority.
im new to modding so i dont know how to decompile soemthing
you dont necessarily need C# to make mods
what do you want to make
I recommend you don't try to start with C# then
then waht do i do to decompile thigns
Like Selph said, what do you want to make? Knowing that can help us guide you better
i wanted to amke an avocado mod
!startmodding Then have a look at the Content Patcher/json resources listed below (ignore the C# stuff)
Uhh, governor?
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.
There were go
you've asked about this before at least once - have you worked on the sprites or referenced the resources folks have shared before? If you're having trouble with some aspect, feel free to ask for clarity about it
Like me, gov is just waking up
Hello! Can anyone help me figure out how to get my npc to dance at the flower dance? "FlowerDanceCanDance" doesn't seem to be working.
you need to add them to the festival setup!
there's a tutorial or a template, let me find it
i dont know how to make my own sprites
im doing npc schedules atm for my npc, how do you get them to do a repeated section of sprites for an animation would i have to put the number of the sprite section similar to the facing direction numbers and then type them all in the order of how i want them played?
EX, if a dancing sprite is on number 12 13 14 15 would i go
"12 13 14 15" for the schedule section for like the facing category and would it repeat this animation?
!software
Here's a list of software for pixel art and JSON text editors we recommend: https://gist.github.com/ishanjalan/c8efb21afa21f74a052293176db107f7
For making SMAPI (C#) mods, see the Requirements section here for which IDE to install https://stardewvalleywiki.com/Modding:Modder_Guide/Get_Started#Get_started.
a good way to get started is downloading an art software, unpacking the game files and just making edits on it
recolor the apple to be green for example
(ignore the second half of that Governor message)
unpacking game files i dont know how to do that you mean just dig around in game folders
!unpack
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!
Like the main event data?
follow the instructions and all the game's image files should be in a "Content (unpacked)" folder for you to play around with
(another question is how do you make a specific portrait show up while talking to someone doing an action at the moment)
or if thats even possible
you need to add a dialogue key at the end of the sentence
uhh i dont have the wiki pulled up rn
ooo i would have messed that up lmao




