#making-mods-general
1 messages · Page 28 of 1
but in this case u know all the keys
so u can just reorder the second set
while using kimono1
either ur really smart or im really stupid for not thinking of that sooner
the problem we had last time was someone with arbitrary list
Both can be true
(It is documented as a way to do that in the CP docs.)
Sorry
Got it
Implementation of ROT in CP needed
Oh wait
how do i get an array of all the items in a players backpack
Farmer.Items
@worthy rose You leveled up to Cowpoke. You can now speak in our voice channels and share images in all channels!
Farmer.CurrentToolIndex
boy this is gonna be harder than i thought then
what're you trying to do, gold?
trying to make my keyToSlot mod work no matter what page of your backpack youre on
it only works if youre on the right row rn
so i was thinking maybe go for itemID
and get that and find that in the backpack and select it
which technically actually should be possible...
CurrentToolIndex, get the item ID from that,
you can just call shift toolbar until the thing is within 1st 12 indicies
i forgor the function name but it is a specific function iirc
that makes sense
i can get the item ID from the heldtool thing, then store it, then if it doesnt show up when looking for it , shift backpack
Like
var items = currentPlayer.Items;
so this only shows the 12?
is there not some slot ID that considers all 4 layers?
[Console Code] Output: 36```
It's a rotation
also i gotta wonder if this
Farmer currentPlayer = GetCurrentPlayer();
will actually get the current split screen player
if it took into consideration the button press event source that might be more convincing
you need to do PerScreen stuff
i'm quite sure simply using Game1.player will get the current per-screen player?
hjmm
if you wanna set data specific to a screen yourself you should use PerScreen stuff i believe but otherwise yeah i think the game handles its own stuff with screens otherwise, so Game1.player should be the current per-screen player
Game1 always refers to the current screen in splitscreen. PerScreen exists because your Mod instance's values are shared between screens unless wrapped in PerScreen
{
foreach (Farmer farmer in Game1.getAllFarmers())
{
if (farmer.IsLocalPlayer)
{
return farmer;
}
}
return null;
}```
u dont need to do that
as mentioned Game1.player is enough in most case
private Farmer? GetCurrentPlayer()
{
return Game1.player
}
i mean its already a property getter but sure
it's really a lot simpler than you think haha
the perscreen stuff is more when u r actually change player stats and the like 
lmao damnit
u should be safe within 1 function call i think?
i just want to be able to jump to whatever slot no matter what row its on, idk how to get the row and slot index for current tool yet i gotta just breakpoint it and look
Game1.player.getIndexOfInventoryItem(item: item) ?
where you could use Game1.player.ActiveItem or Game1.player.CurrentTool
somehow sailor styles has gone 2 yeaers with kimono without me realising that mens pants are meant to be 1 pixel higher on the sheet and 1 pixel longer, so lads have their asses hang out when wearing a ladies fit
nobody reported this

sounds like a feature to me
(Game1 itself is [InstanceStatics] so for all intents and purposes the class is already PerScreen)
ahhh ty ty
Finally finished dropdowns, and sweet jesus they were a lot harder to do than sliders. Shame on me for thinking they'd be of similar complexity.
With that out of the way, are there any other essential widgets that are still missing/wanted?
scrolling marquees 
.... something insanely complicated?
Probably not that hard actually, it's just tapping into the existing animations.
Only thing with a marquee is that there's no logical fit-to-content width, the label pretty much has to be fixed- or stretch-width.
What would it be used for, though?
under construction banners & sparkles
please also add a view counter so i know how many people have visited my menu
yes
But that's just the pre day 5 construction man
i need this to have real geocities free website energy
In a UI/HUD? Would help to have an example in order to understand the look and feel.
Put him on ur menu ez
what about a resizable hud element
like one where you click on a corner or edge and can drag the size around
what are talking about again
While I'm sure the view counter was a joke (not sure if the marquee was too), gonna have to nope on that since it's analytics and not UI.
oh yeah hard things to code
Grabby edges. Interesting. I was planning to do a draggable HUD element for the jelly indicator anyway, though I didn't really think about resizing.
clickablemenus have an exitFunction and an onExit
clickable menu yes
its wierd that the dialogue im using is called clickable menu too
i did do this w/ pointer enter exit yesterday, might be nice to have general text button
'honestly we could just make a counter ourselves if we really wanted
ahh on hover coloring?
if you do may i humbly request early along with it the ability to choose/bar certain axes from being resized
(i.e. you can make a menu thinner or wider but not taller or shorter, and vice versa)
I mean yes and no
sounds like a scaling nightmare maybe?
idk enough about how this would go
With all the thousands of sprites in Cursors, I don't think I see a resizer...
hm isnt there one on the main menu 
Not that I actually expect to find, y'know, cursors in there, but still.
that one is button for fullscreen/window switch
you may just be scrolling past it
I assume you're talking about that one but that's a button, not a cursor.
so close
oh yea i misunderstood oops
Resizing should normally change the arrow cursor to a dual-arrow pointing up-down, left-right or diagonally.
Since SDV doesn't have anything resizable to my knowledge, makes sense that it doesn't have a cursor like that, I guess.
oh
from the template 
Maybe I could hack one out of these
how r u supposed to resize things on a gamepad
just use that and flip it uposide down
maybe click to activate
click again to "set"
Resize anchor is focusable, hold the A button and move the stick.
nice
I dunno if this would see a lot of use, though, unless Button has something in mind to do right now.
Text/icon buttons and checkboxes are very easy so I guess I may as well throw those in.
Will getIndexOfInventoryItem get it even if youre not on the right row?
i was thinking like an on screen sticky note window you can open/close/minimize that you can resize for your notetaking needs during the day
I believe I went with the forage pointer x4 for camera's Mozilla pan mode
i guess notepad wouldve been easier to say than on screen sticky note
i notice that whenever i open a menu my mouse cursor snaps to first focusable
futuristic not taking apparatus
i assume thats some gamepad thing but its jank with mouse
note*
Aye, there are definitely theoretical uses, question is whether someone will use it now or soon.
it was also on my mind for my in game ilspy esque gui idea ive had in mind
its not like. high priority though obv
You want to what
normal stuff
looking forward to StardewUI.RichTextEditor and StardewUI.SyntaxHighlighter just for buttons \s
Haha... rich text requires a decent font system
Is there even an italicized typeface available? I never found one.
It can do bold though. Cheap ass bold where it just draws 5 copies 2 pixels apart (one centered).
ah yes, it's called rich text because it's expensive to render it 5 times
I wonder how MonoGame handles that internally. If it were well designed I'd expect that to be almost free since it would do the text layout once and then just draw it 5 times (layout/rasterization of text is expensive, blitting it to screen is cheap). But then this is MonoGame we're talking about, so who knows...
Anyway, to recap, serious suggestions so far were the stock button/checkbox and possibly the marquee thing, I'm not exactly sure. Resizables maybe on the longer-term to-do list.
oh do u have radio buttons
related to checkbox ofc, but with a thing to ensure mutual exclusive
idk if that comes up enough so maybe ppl should just do their own
I was thinking about doing a radio group for myself, yeah. I don't think SDV has a sprite for it though so you'd have to give it your own on/off sprites.
looks through the labview widget box
sdv/gmcm just uses dropdowns in place of radio buttons, which is overall better for space imo
ui is extremely cramped and space is a premium
i like radio buttons better aesthetically/UX wise though personally
Yes, which is why I spent all that time implementing the dropdown. That said, dropdowns aren't really that space-efficient when so much horizontal space is wasted.
And radio groups have much better usability.
Radio groups show all options at once I enjoy that
yeah, radio ranges are very nice
you could probably reuse these in some manner for radio buttons
The closed-range could be interesting, though I wonder how janky it would be with Stardew's slider sprites.
Hmm, not sure if those would work for radios. The dots are fine, the backgrounds are... not so much.
Maybe just an empty circle and you can put whatever you want in it. I'll probably use the bobber. You could use an egg, a gold coin, whatever.
i was thinking you could take just the part with the colour, so like just this part and then just make the corners empty by editin the sprite data directly. kinda messy, but would come with recolour support
theres even a smaller lil circle you could use for "off"
The menu tile is actually not a bad frame for it. Not perfectly circular but it is rounded. I just wish it wasn't orange, but recoloring the pixel data in a sprite is way less egregious a hack than trying to circle-crop it in code.
is ther any thing that states what page of the toolbar player is on
idk you guys say im making this harder than it is and man i must be making it so difficult
i shift toolbar htho
yeah how do i check that ive shifted thru all of their backpack rows
That was checked in yesterday.
there's maxItems
ahhhhhhhhhh i cant it make brain hurt
so it figures out the new max toolbar size here
yeah i see that
based on what they cahnged
but i mean
if its unmodded
it hsould just be the max items / number per row
with respect to Farmer.maxInventorySpace yea
row count is a config value
ah i thought i patched shift toolbar but i actually just wrote a new shift function
for multiple lines to shift
Game1.pressSwitchToolButton() is the vanilla version of this function
what mod dev are you i know i recognize your handle
or do you just contribe to pathos repos
I guess you'd have to write your own if it's meant to work with arbitrary toolbar sizes. Though setting a size of like, 17, means you'd just keep shuffling the items into new weird spots...
yea
im just not going to have mod capability for now
i mean
i could just like, somehow check how many are in the current row
then assume from that
Items.Count?
or would that show all rows
ooooo
i see this tho
items.Count == 48
is galaxy sword item ID really 4
like is that the 4th item made lmao
hmmm parentSheetIndex
that seems like it might hint at row?
this here seems to show all of the items
oops
wrong thing
lookie it has all of the items and their true position
huh i didnt realise smapi respected internal for save data 
wdym
parent sheet index used to be equiv to an item's id
you should use QualifiedItemId instead now
https://mateusaquino.github.io/stardewids/
You can use this to find the ID's, not sure why Objects isn't qualified but all the other ones are
If you don't want to open the data assets
Figured I’d ask now
I want one of my rocks to have a magnetic effect like the ring
Is that possible without C#?
are you making the rock equipable
The magnetic effect is a buff on the player that's used by the game to determine if loose items should be pulled to the player
So if it's not a piece of equipment or something that would provide a buff to the player, you would have to recreate that effect yourself in C#
I can't decide if it's smart or insane to make all these different things just classified as debris
ItemExtension do have "item in inventory" GSQ and "item held/dropped" trigger actions 
and there's add buff actions in vanilla
item in inventory GSQ is vanilla
Fun fact
You know those little numbers
Those are debri too
Wait, little numbers where? I'm moving firmly towards "insane" lmao

Don't worry
I've already gone off the deep end
I'm trying to figure out whether or not I can plant kiwi
damage numbers are debris? that's wild
damage numbers, crate bits, bug parts, dropped items, all debris. it's nice to think that one little change and your combat dmg could sink in water
Dang, hardy
In before "wow this new farming game is tiring. And I'm covered in ant bites. Too realistic. 0/10"
Just gotta find some stardrops to bump up your stamina (coffee, so much coffee)
heal numbers are also debris 
altho im prsure debris is just how it displays and hopefully not any real functionality
I think it's mostly to take advantage of the like falling and bouncing effect
does this look like the right formatting to make a temp character that spawns on sunday or monday after 3 days, and is absent all other days 
{
"LogName": "Sailor Styles: Character - Data",
"Action": "EditData",
"Target": "Data/Characters",
"When": {
"DayOfWeek |contains=Sunday, Monday": true,
"query: {{DaysPlayed}} > 3": true
},
"Entries": {
"blueberry.SailorStyles.Character": {
// ...
"SpawnIfMissing": true
}
}
}
guys im still over complicating the everloving shit out of this key combo bs
can i just show my dumb ass convoluted code to someone
and hope to god they dont smite me
sure, post it to codeshare.io or a similar site and link it here, someone might be able to point out obvious issues
or you can zip and share the full mod for a test run
you'd probably just have to set the schedule instead, make them only show up on sunday and monday (with a spring default) and set them to invisible the rest of the time (or a warp room)
the unlockcondition to be the gsq of daysplayed instead
i know it works as is just my button logic is dumb
but it does work just not perfectly
can someone remind me what JustPressed does
the issue lies in stuff like... i want d pad to be able to be modifier keys but also would like if it just worked as a single bound key too
like if someone wanted to do left dpad + B
or if someone just wanted left dpad
but theres all sorts of issues with this
i can technically set the keybind once all buttons in the desired bind are released
or evenb once any button is released
if youre going to bind LEFT + A youd prob not let go of any until you held both
yeah
so when in keybind mode i should add all buttons till any are released
that should be a lot simpler than i made it
going to cause problems with loading and multiplayer. Use UnlockConditions for this.
And if you cant express your conditions in GSQ, do an inner patch to specifically UnlockConditions and have everything else in an unconditional patch
will UnlockConditions hide the npc when it evaluates to false?
alternatively, should i just rehome the npc on off-days
no but you can do that by hiding them in an unaccessible location with Home (and schedules)
can you call that from the farmhand? atra doesnt think so
invisible might not be ok since atm the shop checks the tile for the cat
i'd rather vanish the cat somewhere else
im quoting the wiki with that one
npc isInvisible is a netfield it would eventually sync
Hmm
he lives a life of luxury in a wardrobe someplace. he has to get all these clothes from somewhere
Only host sets it
though tbh I would do both invisible and the unaccessible location, both have different characteristics
i was just being silly by telling atra what atra thinks
UnlockConditions isn't even mentioned on the npc data wiki page 
!npc
Keep in mind that making NPCs is a complex process that requires learning many different aspects of Stardew modding.
Here are a few links that can help get you started on all that you need to know:
-
Tiakall has a great tutorial on making a custom NPC for 1.6:
https://stardewmodding.wiki.gg/wiki/Tutorial:_Making_a_Custom_NPC -
Custom NPCs received many improvements with 1.6. For changes made, see the migration guide:
https://stardewvalleywiki.com/Modding:Migrate_to_Stardew_Valley_1.6#Custom_NPCs -
Some information on the NPC wiki page is still relevant:
https://stardewvalleywiki.com/Modding:NPC_data
Just make sure you're checking the migration page and tutorial first as this page still has outdated information on it as well. -
Aviroen has put together a template that will allow you to easily create a romanceable NPC:
https://stardewmodding.wiki.gg/wiki/Npc_template
for basically anything NPC related you want the migrate to 1 .6 page
until it gets moved to the proper page
i honestly forgot blueberry was still dealing with the 1.3 understanding of npcs lmao
SpawnIfMisssing is also not on the page tbh
(i'll get to it eventually................ i have uni to deal with
)
SpawnIfMissing is on the migrate page
this mod has android compat comments labeled from 2019 on it, it's been a while
everythings on the migrate page as its the source of truth
And the best documentary on custom farms is the 1.5.x migration pages
What is 2019
really though this mod's seen some shit since 2019. i don't think i have any other mod that's been through so many different frameworks
What did it use before JA?
JA was never needed-needed, only if you wanted mod compatibility
kisekae, cp, c#, get glam, json assets, c# again, back to cp
Kisekae?
i just had war flashbacks reading kisekae
What is that
are the overnight events (like the earthquake and such) just normal events or are they something special?
wants to add a simple text event overnight to trigger the entrance to my new area opening
get glam was a fork or successor to kisekae, it was just a framework that let you add to the character creator (hair, shoes, accessories, etc)
FarmEvents are their own beast
i think overnights are a more special thing but theres a mod for it iirc
at the time shirts and pants didn't have items so it handled those too
i didn't realize that was the header image that's pretty good
(C#)
yeah, i suspected I'd need to use the c# portion of my mod for it
Utility.pickFarmEvent (and its associated delegate)
ah, and each event is an class that extends the BaseFarmEvent class
interesting!
with a big catch all for the type I'm talking about called "WorldChangeEvent"
does the first entry in a schedule start with 0 or 600 
0 means they'll start the day already there
if you set the start to 6 (or more effectively 610) they'll move from their bed to the first location
I found starting at 600 often meant it didn't fire at all though
so I swapped to 610
0 is the schedule hack for Leo's behaviour
oh so i don't even need multiple home locations if i just 0 a different place on the same conditions
I figure it works for "early riser" characters of all sorts where they got up at the ass crack of dawn to go stare out over the ocean or whatever
Don't do multiple home locations btw
That feature is glitched
I was curious why it was a list, i was confused how they would pick a place to go
unless it's intended that only 1 should resolve to true at a time maybe?
i imagined it'd go through the list until it finds one with matching conditions
The first that resolves true is used
But note that (a) checking happens quite early at night, before the day has ticked over
And (b) there is something weird about it and loading
Sometimes you get the npc on the map that would have been picked the previous day and the vector location of the current day
I fixed that for upcoming SpaceCore btw
works? 
{
"Mon": "GOTO shop",
"Sun": "GOTO shop",
"shop": "0 33 96/1240 33 96/1830 33 96/2020 33 96",
"default": "0 Forest -999 -999"
}
(Not in base game because iterating on SpaceCore is easier than iterating on game versions)
My guess you rerolled them at the start of thr day?
(And we’re unsure of side effects at the moment)
Sorta, let me get you a commit link (if I can on my phone)
Ah I never pushed it
Or I did
Thank you!
It’s not the best
But it worked in my testing
oh to have a little git peon to fetch my commits for me
Wait
Why does warp character set the default location
I mean I know zero schedules don't work at all for married npcs
Why does warp character, or my code?
Honestly I probably should’ve just used a conditional weak table, but if figured updating the default stuff made sense since that SHOULD be up to date anyways
Breaks married npcs
Married npcs have a home location of their wedded home
Granted, zero schedules are broken in marriage anyways
(Because marriage duties hard warps them back)
Does reloadDefaultLocation not account for that?
Does it?
I assumed it did I guess
I forget if it does
But that isn't what 79 does
79 hard sets it to their 0 location
So, that only gets called if they used a 0 schedule
Yup
It’s a transpiler that replaces a specific call in the parse function
And currently in vanilla zero schedules don't work for married mpcs
But only because they get hard warped back at the start of marriage duties
So they would get warped to the 0 location during marriage duty instead
Hmm, that’ll be interesting to fix
Nah, since you get their current schedule now
It’ll work for Hector since he ignores marriage schedules but… hmm
Just a simple "if schedule starts with "0 " don't do this warp"
I think. It's been the better half of a year but I still distinctly remember
Remind me in 19 hours to look into marriage schedules with my 0 schedule fix
Ugh I suppose, kittycatcasey (#6234897) (19h | <t:1726095676>)
Uber has been nice to me on ES the past few times, guess that phase is over
Doesn't ubre have nice mode
Someone tested and they were rude to them after my third time in a row
Anyways, sleep
hand cursor stays on a shop tile even when the open shop conditions aren't met
it's probably fine
and yet the hat mouse shop doesn't get a hand cursor..
TIL you shouldnt use a list for a dict key
Has anyone made animals larger than 32x32 and had them work correctly? did a 64x64 and it just got stuck on everything(Makes sense its huge) just wondering if there is a workaround or anything/max size that works!
maybe you can try adding a special building for it with 64 width door
Are current item and current tool..... two different things
reeeeeeeeeeeeeeeeee
but you can only have one or the other selected
CurrentTool casts CurrentItem to Tool, so it'd return null if the current item isn't a tool
if the current item is a tool, both will point to the same thing (albeit with different types)
wait hang on i dont understand, so would CurrentTool just always work
have you unpacked the source code? It explains things clearer
it seems like something you should do
so its not obfuscated?
it's incredibly useful, especially if you don't know much code
idk how to unpack the source
it's C# so you can decompile it and (mostly) get the original source code back
!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
a lot of newer c# is pretty hard to unpack
must be made on some older stuff
but for now, to fix my cde, i see that its set to -1 when its not an item
there's no intentional obfuscation used on SDV before compiling it, which helps
ahh yeah
so i can just, if -1, get the other
{
desiredItemIndex -= 12;
player.shiftToolbar(true);
}
cant believe this works lmao
wrote it expecting fully for it to be wrong
ezpz
and the tool thing i just stored a seperate check for if its a tool and if it is search by itemID string, but for regular items was able to just use parentsheetindex
don't use parent sheet index
that's only the number of the item's texture within its texture sheets, so different items using different sheets can have the same parent sheet index
use QualifiedItemId for both
does base game spouse portraits behave like this?
No
Then I wonder why @muted sable was trying to achieve this, why not copy the ShopItem data from other spouse portraits?
shin wanted a "one time buy" kind of deal iirc
I s'pose these are the controls you want, @lucid iron?
I took a good look around and couldn't find a single instance of vanilla buttons in the game actually having a hover effect, so I'm going to default to the regular and hover sprite being the same, but you can trivially swap the hover over to "light" background in the constructor.
hello! so I'm a c# programmer, and though I'm not quite free just yet, I would love to learn the mod frameworks and help with the C# stuff soon!
I also have an idea for some external game utilities that might be useful to both modders and players:
1 - tool that's basically an out of game AT catalog, to help with game performance
2 - similar to above but with CP (this might be harder bc it's tilesheets?)
3 - something like the Stardew Helper site but can account for mods
Thoughts??
CP can edit basically anything, not only tilesheets
i dont know what an AT catalog is, and CP is way more than tilesheets
edit: c# programmer in the real world (like my day job lol)
(you can edit discord messages btw)
the catalog added by Alternative Textures for viewing everything available
I knew this, I apparently need to go to bed lol
im not sure what either of 1 or 2 would do for game performance then
!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.
hard to explain 2, but 1 would let you see everything in a separate tool. the catalog gets really slow to load if you have a lot of texture packs
Smapi docs r pretty straight forward
It's little bit different than making standalone c# cus u r make stuff to run on top of game
hellz yeah love me some good documentation. definitely stuff I want to get into! (after my certification exam for my job)
But once u get past entry it's free game
then expect to see me again here....soon ™️
Many mods, including content patcher and alternative textures, are open source
I wanted to make it more special? I guess it's probably a bad idea now that i think abt it
(F)OSS is what keeps humanity humble
i dont think makin the portrait more special is a bad idea, so long as you can help the player out if they somehow lose it
my mod is mostly finished now, button combos work nice, and i successfully supress input if button is pressed whilst modifier is held (so if youre currently on bombs and you say hold L3 and press X to swap to a bind you set to that, iot doesnt lay a bomb first)
i kinda liked how it felt when it would for some reason do the action of the button the keybind was set to afterwards, but i dont think thats really necessary, and it only worked on Modifier + X combos
(PS5 button X, in this context)
tomorrow ill dig into the mod menu stuff and make a clear all binds button
If you need help with Furniture data or code when you work on your tools, you can ping me, I'd love to help prevent people from going mad trying to understand it.
just for you.
You're doing a pack of UI tools to be used in mods?
Doing, done... the definitions get blurry at some point.
oh that's so cool
that's so cool! I've heard so much people going mad with UI, I've always pushed away ideas involving UIs in SV.
It started out as just an experiment for the logistics menus, then found a use (and more bugs to fix) in pretty much all of my other mods to date.
for me 
Please don't make marquees with focusable elements inside. I don't even want to think about how that's supposed to work.
obviously it needs to stop animating when focusing on anything inside
I mean, yes, but the drawing gets repeated so it's continuous, so if parts of the same view/element appears multiple times in the same marquee... ahh, agony.
It's all a drawing trick, not a real layout like a scroll container.
oh.
Received this error from Jasper in the afternoon of the Moonlight Jesllies: his dialogue just showed as "..." usually this means a blank dialogue entry - but I checked his marriageDialogueJasper and it was fine - is it looking for dialogue elsewhere? If so, where? https://smapi.io/log/42924805da6b410bbefd78c4d2ff2ff3
Log Info: SMAPI 4.0.8 with SDV 1.6.8 build 24119 on Microsoft Windows 10 Home, with 47 C# mods and 52 content packs.
Suggested fixes: One or more mods are out of date, consider updating them
Do the white squares in the coop sprite serve a purpose?
I'm not too knowledgeable of the expansion modding scene, but which mod is this Jasper even from? I can't find the main mod that adds him in this log, but is he also in East Scarp or something?
(either way, it'd be nice to have the JSON files to work with)
Jasper is its own mod for now
he has his own mod atm, but I've merged him into East Scarp. I was just wondering if this piece of data could give us any information on where it was looking for it. Don't worry about digging into the files... the version I have is quite different from any available
just wondering if it was looking for data in MarriageDIalogue or elsewhere.
Huh, is the "Romancing Jasper 1.0.0" mod the same thing?
you won't find them, they're WIP
It tries Characters/Dialogue/MarriageDialogue{Name} if that fails it then just uses Characters/Dialogue/MarriageDialogue
its me moving a bunch of stuff around
Last time i saw a ... dialogue it was related to... ja something?
On phone but ill search details later
Pretty sure it was mentioned on ES channel
This is the MarriageDialogueJasper file
... normally happens when it finds a blank field.
I think some of these should be in the main "MarriageDialogue" file, I'll go check
Did they say the exact time it happened?
I'm not even used to them giving dialogue in the afernoon when their daily dialogue is (Season)_(day) ie: summer_28
it was after 12 noon
unless it's looking for something random like a conversation topic, I guess?
if the time was after 1300 and it was a marriage schedule, it may have attempted funReturn_Jasper or jobReturn_Jasper
I wish it just told us... ah well, mysteries
(as you can see the kid stuff is currently broken but we don't have children)
jobReturn_Jasper or funReturn_Jasper seems pretty likely
They don't have values defined in the main MarriageDialogue.json
he has funReturn
What day of the week did the error occur?
It's a sunday. Summer_28, gave the relevant dialogue in the morning.
There's some wacky logic depending on the day of the week it seems
usually they then don't talk later on those days.
Might be because of this
Try filling it out and trying to trigger it again to see if what you put in shows up
thanks, will do, will note he hadn't left the farmhouse that day
I'll keep looking around in that case then
don't stress too much, I'll see if it happens again
might be something random like a conversation topic or something
the logic for funReturn and jobReturn isn't day specific, its based on the npc's schedule info
funReturn is if the schedule is marriage_{day} jobReturn is if its marriageJob
I do wonder if it's not keen on the randomized keys having names in some instances
Ahhh I see
yeh, I'm pretty sure if you schedule them to leave each day you only get the funLeave and funReturn dialogue
But yeah, a lot of the NPC name keys are in the main MarriageDialogue.json
else if (Game1.timeOfDay > 1300)
{
if (this.ScheduleKey == "marriage_" + Game1.shortDayNameFromDayOfSeason(Game1.dayOfMonth))
{
this.setNewDialogue("MarriageDialogue", "funReturn_", clearOnMovement: true);
}
else if (this.ScheduleKey == "marriageJob")
{
this.setNewDialogue("MarriageDialogue", "jobReturn_");
}
else if (Game1.timeOfDay < 1800)
{
this.setRandomAfternoonMarriageDialogue(Game1.timeOfDay, base.currentLocation, countAsDailyAfternoon: true);
}
}
SinZ can probably pull up whether it would work properly in the other file though 
and setNewDialogue has a cruel twist that if its marriage related
if (dialogueSheetName.Contains("Marriage"))
{
if (this.getSpouse() == Game1.player)
{
Dialogue dialogue2 = this.tryToGetMarriageSpecificDialogue(dialogueSheetKey + nameToAppend) ?? new Dialogue(this, null, "");
dialogue2.removeOnNextMove = clearOnMovement;
this.CurrentDialogue.Push(dialogue2);
}
return;
}
The error that shows up I'm 95% sure is that fallback new Dialogue(this, null, "")
as right before it on the same seconds, the SMAPI asset propagation did try to load Characters/Dialogue/MarriageDialogue which can only happen if tryToGetMarriageSpecificDialogue runs, reads the NPC specific one, cant find the value and falls back to the generic one, and if the generic one doesn't have it either, return null
I have had issues before when using $c but I don't think that applies in this instance
hmm are their new marriage dialogue keys it could be looking for?
Since Characters/Dialogue/MarriageDialogue was loaded at the exact time of the error, I'm 99% sure whatever key was attempted was missing from the Jasper specific MarriageDialogue
but also from the generic?
and if it was found in the generic MarriageDialogue I see no way of the error being empty key
does anyone have jobLeave anymore? IT's not on Harvey or Penny's MarriageDialogue jsons
It's in the generic one, keys with their names at the end
ah yes thatmakes sense
I wonder a little if you'd want to try moving some of Jasper's lines in there
But it might be a bunch of work for something that might not even work
I'm fairly confident that the code reading MarriageDialogue checks the npc specific one first anyway
hmm what about "season_NPCName" that's in generic.
That might be a good idea
Unfortunately it apparently has only a 5% chance of appearing..?
the season_npcname? But wouldn't it be morning dialogue? What ones show in the afternoon?
I think pre-1.6, non existent dialogue just popped a speech box then vanished it without error messages too
so probably why I never noticed
"afternoon" dialogue is >1300 and before <1800
so what ones pop in afternoon? Just jobreturn and funreturn?
Night ones must be after 6?
so yeah the info i found is that it happened on ARV because of some JA references in the mod and got solved once removing those, more details may be in the ARV channel somewhere. Your problem may be different but maybe you have some JA gifts or something that cause issue
if its after 1300
funReturn if its that schedule.
jobReturn if its that schedule
otherwise if its before 1800, do afternoon dialogues (unless its krobus and its friday)
Outdoor_{name}Outdoor_0->Outdoor_4Neutral_0->Neutral_9Bad_0->Bad_9{season}_{name}Good_0->Good_9
Okay, I think all of those are covered exceot outdoor_jasper and (season)_(name)
so I'll add those in
it wouldn't be the outdoor pairings in your example as they warped to Farmhouse, and Outdoor only happens on the farm
in terms of JA gifts, there's a few with the AcceptGift code, but they'r enot so much JA as items that just don't exist in my game
like I don't have JA installed at all
all I can think fits is (season)_(name)
That seems like a pain to reproduce considering it's a random chance whether you get it
Probably why it's slipped your notice
I triggered it on the same day played twice,
like I played it once, turned time back a day, and played it again
it is seeded random on the day+time
(I was testing the Moonlight Jellies)
so presuambly if I used the _old file I could trigger it again
lets test that
I can make a quick mod to just log when marriage specific dialogues don't find one if you want
wont help for users in the wild unless they also install it, but if you are locally reproducing it
let me test this theory first
unless you want to whip up something to help other folks with bug testing
yep, it's summer_Jasper
right four more lots of dialogue to rustle up!
hello! just a question since its my first time including other people's translations into a food mod im updating, do I just put the translations file in the i18n folder? do i need to do anything hardcoded?
Nope, it should be as simple as that
I see! Thank you sooo much! 
Of course make sure you have permission to use their translations directly in the mod 
(probably safe to assume you do but I think it's polite)
no worries :> i do!
anyhow, thank you for your willingness to help, and helpfulness with it!
(Jasper's "bad" dialogue makes me feel sad, I hope I never see it in game (I won't, I have No Friendship Decay enabled, although I talk to him everyday anyway) )
(please do not use partial classes, you will regret it)
I regret whenever someone else does it and I have to see it
I make another class for some things(like DisplayHandler if there's too much display event code), and handle them there then tie their events to ModEntry if my ModEntry gets too big
Partial classes make me mad xD
Whenever I feel like my scripts are too big, I just open the decompile again and look at almost any script there
No pressure but this would actually be amazing. Marriage dialogue is so opaque and anything that would help those of us without much C# knowledge figure out problems with it would be so helpful.
I just avidly read that whole discussion about Jasper's dialogue so I could learn more for future troubleshooting marriage dialogue.
hard part is going to be testing it
If that's something I could help with I'd be willing to do that.
Are there frameworks which extensively mess with spouse AI?
I wish there was a machine that auto-updated my npc to 1.6
Spouse AI is primarily just the same as any normal NPC AI, based on dialogue and schedule data. I can't think of any frameworks that mess with those systems, they're kind of heavily integrated
(I may have tested it by just nuking the contents of MarriageDialogueAbigail and MarriageDialogue)
A lot of things are very hardcoded
Schedule data is only used when an schedule actually exists for that day
I wouldn't say a lot, at least not in 1.6, but a fair amount sure
Otherwise its all if elses and harcoded placement
I was messing with it a few weeks back, dropped because it was frustrating but thought that maybe one of the big frameworks had softened the code a bit already
Softcode
Technically schedule data is always used, if there's not a schedule that matches it falls back to spring and if that's missing the NPC stops functioning
Not for married npcs
There is specific logic for selecting npc marriage schedule, if theres not a marriage_ schedule for that day it is set to null and behavior is selected with hardcoded if checks
Like is today saturday and not raining, then teleport to the area outsude for outdoor activity
there's a lot of stuff spouses do, there is the hardcoded saturday logic for using the spouse patio, there is the hardcoded thresholds for the various marriage dialogues, the messaging may be configurable, but the thresholds and rng odds aren't, the myriad of actions they can do on the farm like fixing fences, watering the pet bowl, etc
2 days since having a baby? Teleport to the kitchen and load the 2_days_since_child_dialogue
Npc AI has been by far the most hardcoded intercoupled spaghetti part of the code I've messed with
I wonder if fishing is worse
Ive heard fish lists are also harcoded in a lot of places
fishing is in one nice spot
At least theres not too much coupling id assume
marriage spouse logic is spread over a lot of places
I feel like every time I've seen all the weird fishing logic, I find some new bullshit
In specific situations
The fuxjing farmhouse
The house
Is responsible for spouse ai
Why
Lmao, the resetSharedState putting your spouse back in the kitchen is so out of pocket
Literally anywhere else, jesus
Back to the kitchen with you
I want a sandwich
It's probably a fix for the age old issue of "my spouse is at 0,0?"
Yeah, it's a fairly fixed location, so I guess I understand, but like so too would the spouse room be fairly fixed
Spouses only serve for 3 things. Cook, stay in little room, and wander around following a weird floodfill random path generator thing
yeah, that's almost guaranteed to be a hotfix for a weird problem
"oh, that's wacky. well what if i fix it here? that seems to work, moving on"
Same for not being able to warp to specific tiles when warping to the farmhouse in general I'm sure
ok roommate dialogue also is logged only when a roommate, all 3 flows I care about work, sweet
If you arrive there by any means other than the cellar, you're set to the front door
Overall the reduction of coupling and hardcoding in newer features is very notable
if you want to test it yourself (cc @inner harbor) go for it, if it also works without errors I'll push to nexus
Time making mod: 10 minutes
Time retrofitting the name to have the right acronym....
the one thing AI can kinda do
Ill try fiddling around, otherwise there’s gonna be a magnetite ring eventually lel
As long as you aren't asking google's AI to google something for you
But what if I want to implode ai, that's the surefire way to do it
Don't you worry about imploding AI, it's doing it for us
I have realized in the twilight of clarity and insomnia, that I am roughly 95% done with my npc expansion mod, and that's an extremely weird feeling
Just another week of testing and then you'll be ready for release and an immediate patch for something forgotten
My personal favorite has been forgetting the update key
I do that so often but thankfully stardrop yells at me for not updating my manifest
My version of the mod being like, 5 manifests behind, stardrop: "UPDATE YOUR OWJ MANIFEST YOU IMBECILE"
that sounds like a lovely place to be
@solemn roost: 4th anniversary of the #pokemon channel (17h ago)
yippie, real anniversary today!
remind me the 5th anniversary of the #pokemon channel in 365 days
k (#6235554) (365d | <t:1757597846>)
What is this Pokémon channel
this will keep going for as long as i live
5 years ago a lot of us modders went off topic in here and started debating/talking pokemon a lot so a mod (i assume pathos) renamed the channel to #Pokemon
The wild west of moderation
These days if you go off topic for too long you just get yelled at (kindly redirected)
Golduck rulez 8|
rip x))
it was already true at any point, off topic redirection isn't new
I came in like a wrecking ball?
Official Video for "Used To Be Young" by Miley Cyrus
Listen to & Download “Used To Be Young” out now: https://mileycyrus.lnk.to/UTBY
Listen to & Download “Endless Summer Vacation” out now: https://mileycyrus.lnk.to/EndlessSummerVacation
Amazon Music: https://mileycyrus.lnk.to/UTBY/AmazonMusic
Apple Music: https://mileycyrus.lnk.to/U...
any way to forced a button press thru code?
like i wanna press X automatically
err X on ps5
so a i think on xbox
the button to place bomb, eat foood, etc
I am trying to make a item that warps you to a custom location. How can I make it not be consumed on warp (like a warp spectre).
Lol, the horse flute just adds an extra flute to the stack so that when it returns true it just removes the extra one
something weird. so i modded the ancient fruit to be pinkish and for some reason the fruit is still blue before harvested. i checked my png and its as i edited and i made sure i added it to the content json. is there something im missing?
Did you plant new plants after changing it?
Actually do textures not get updated? Not sure how that caching would work
no o__O i didnt think thatd be relevant
I know data of things already in the world don't get updated
that is so freakin weird ;o
It's all cached to avoid reloading a shit ton of data constantly
i see. alright. well ty
Try planting a new plant, see if that works
There is
ohh??
Check under Controls
hey all! anybody know where in Data bushes are? like if I wanted them to drop something other than berries?
Also there's debug growcrops <numberOfDays>
i made them insta grow and they're still blue. maybe i need to reload the game?
reloading the game and sleeping are always good ideas!
will do
If that doesn't work double check the images it's referencing for crop stages on the tilesheet
Looks to me like the bushes are hardcoded
There are multiple mods which change berry bush behavior, maybe look at those to see what they do.
ah okay, thanks!
did you try patch summary to see if your texture loaded?
no
also are you just swapping the tilesheet for crops or are you loading a new tilesheet and specifically adjusting the texture for ancient fruit?
just modding the crops png
ok can you share the code you used?
im reloading the game to see if it worked first
To add, Bush Bloom Mod is the one you want to look into
ah cool thanks!
yeah its still not working
You can also patch export the tilesheet you're trying to edit to see if it's changed, sometimes I prefer that to digging through a summary
actually i just found my issue lol
its suppose to be tilesheets not maps -o-
well derp
I can't tell you how many times i've screwed up because I forgot something was plural
oh no 🤣
no biggie, i got plenty left so no real loss
Always test on a new throwaway save lol
Well, unless you're testing something like adding a mod to a game in progress
I make and delete so many saves every day lol
How can I add a item to the players inventory when they use a warp totem (in cp)
Pretty sure you would need C# for this whole endeavour, unless you're using a framework to handle the totem warping
SpaceCore has item used trigger
You could use a trigger action to add the item I guess
Ah, then yeah, should be able to use SC to add the item when you use it
Not sure if it'll happen fast enough to mirror how the horse flute works, might just end up in a random spot in your inventory
Not sure what SC is. Is it a framework?
SpaceCore
Oh makes sense now
hi, i have a mapmaking question:
i was messing around with adding vanilla tilesheets to a custom map, and noticed that the recolor i'm using (VPR) isn't applying properly to the vanilla tiles (i.e. the bridge from winter_town.png in VPR doesn't have snow).
how do i fix this?
fix in what sense?
to make the recolor apply to the vanilla tiles
well, the creator of the mod will have to create the assets needed
the bridge is supposed to look like this (from the winter_town.png in VPR's assets folder)
Question, can I make a sword swing use one sprite for the "object" (the icon on the inventory bar) and then a custom animation for the attack? Would that be harmony?
the assets are already there, they're just not applying for some reason
oh ok
then remove the vanilla tilesheet from your mod folder, if they are in
it's likely that messing things stuff
because if you use vanilla asset, the recolor will automatically apply to it
hmmm it's still not working
there's no copy of the vanilla tilesheet in the mod folder
Can you do these steps to provide more info?
- Load your save and view the content that should be patched.
- Type
patch summarydirectly into the SMAPI window and press enter. - Upload your SMAPI log to https://smapi.io/log (see instructions on that page).
- Post the log link here.
Log Info: SMAPI 4.0.8 with SDV 1.6.8 build 24119 on Microsoft Windows 10 Home Single Language, with 70 C# mods and 217 content packs.
Suggested fixes: One or more mods are out of date, consider updating them
it's weird bc there's another added vanilla tilesheet (spring_Waterfalls.png) in this map and the recolor applied correctly to them in all seasons.
i checked the map's .tmx file in notepad and there doesnt seem to be any difference in the image source part? unless i misunderstood the tutorials somehow
Are you editing the map in the Maps folder or somewhere else?
in Content (unpacked) > Maps folder i copied to a different drive. does that count as "somewhere else"?
sorry english isn't my first language and i am VERY confused by the technical language in wiki's modding tutorial....
Just to make sure, you copied it back to the mods folder after you finished editing it?
my process is edit a base map in this location, copy the finished map to the release folder (in Stardew Valley > Mods), then load the map in game
there are no copies of vanilla tilesheets in the release folder
like i mentioned, it's strange that the recolor doesnt apply to tiles from spring_town when it applies to tiles from spring_Waterfalls in the finished map
the difference is that the base map i edited already has spring_Waterfalls added (as zz_spring_Waterfalls) and i added spring_town myself (as zz_spring_town) in tiled's tilesheet pane
and i checked the tilesheet properties and the map's .tmx file but there's no difference between both?
For the folks who know their GSQs, are all of the following possible in vanilla?
- Player has some skill level
- Player has some specific profession
- Player has equipped tackle
?
I don't need specific instructions, just doing a quick check to see if I should pursue an extensible rule system via GSQ or just hardcode them all.
I know that page exists, but it doesn't have an easy answer for all of the criteria (like tackle).
Which might mean it's just not supported by vanilla - which is fine if so.
that page is, barring accidents, the list of vanilla queries
yes, yes, no idea
and you can totally do a search on the page to see that the first two are supported
Ok, I guess I could use vanilla GSQs for the first two and define a custom for the 3rd. Maybe not a big deal to do.
This log is absolutely terrifying. What's your mod called?
And the name of the recolor
sorry if it's long haha, i was repeatedly testing this problem without shutting down SMAPI
i am actually messing with Lnh's Comfortable Farm (replacing forest farm) to troubleshoot this exact same problem in my actual farm map bc i don't want to mess it up any further. and the recolor is Vibrant Pastoral Recolor
Point taken; thanks.
in case that wasnt clear: i edited someone else's map to try and figure out why this happens in my custom farm map re: recolors not applying.
According to this log, Lnh's Comfortable Farm patch is failing due to tilesheet climbing
(I don't do anything with maps but I have seen "tilesheet climbing" so many times now that I think you need a bot command for it. Or maybe there already is one.)
ah, there was a tilesheet climbing problem that prevented the mod from loading at all, but i've fixed that
problem is even after i made sure to fix everything else if any (tilesheet order, tilesheet climbing, etc.) this recolor problem persists
There is a command for it lol
for that matter: how do yall test if map recolors apply in every season correctly?
Just not sure if it's actually pertinent here, since this log is massive
I would just use CJB to change the season and run around
ah see i do that too
world_setseason is what I do
when i start a fresh save, the recolors actually applied correctly. it's when i started adjusting in game seasons with CJB the recolors stopped applying correctly, and persists even after i return to main menu and reload
Did you sleep?
Yes
You must sleep
yeah!
i have!! and when i wake up the next day the recolors dont apply lol
okay actually lemme do that one more time. with a fresh save
What about reloading the save after sleeping?
ill try that and report in a bit
Cheats are a great way to test but do require a lot of extra steps because the game doesn't like being told to do stuff out of order
It's using season tokens to patch seasonal sheets
depending on how the recolor is set up via content patcher you may need to patch update after changing season during the day
Has anyone tried to implement mod data that is both localized and supports content patching? On the one hand, translations are local to the mod, so if I have the mod data (i.e. some asset) reference a translation key, then it will always look up that key in my mod and won't work for other mods adding their own localized strings. On the other hand, if I make it like a Func<string>, then it pretty much has to be set up in C# and won't work for either CP or even my own asset loader.
it's vibrant pastoral recolor. and i genuinely have no idea what this means. modding wiki isnt clear on recolor troubleshooting either
How is exactly the text for, in an NPC dialogue, for him to give you money? I was checking the wiki, found is $AddMoney <amount> but it doesnt really works. It shows the text, but doesnt add the money
Can you do it as a custom asset? So that by the time your mod interacts with it the i18n would have resolved
show how you are doing it pls
because we can't really solve that without seeing if the issue is with your implementation first
Should be $action AddMoney <amount>
The rest of the dialogue works perfectly, is the action thing that I am doing wrong
okay this is confusing me even further. i started a new save and now the dirt tile colors aren't what they should be (right image taken from VPR's nexus page). they were literally normal before i closed and restarted the game
genuinely what's going on here 
(your log gives information)
So the issue is, let's say the asset contains something like:
class Rule
{
public string Name { get; set; } // Not localized
public string Title { get; set; } // Localized
}
If I do it this way, then mods can add translated strings (looks like CP has an {{i18n: }} token) but I can't use my own translations. The Rule in the data.json (let's call it) will already have the final string. On the other hand, to do it a different way:
class Rule
{
public string Name { get; set; } // Not localized
public string TitleKey { get; set; } // Reference to i18n key
}
Then I can resolve the TitleKey to my own i18n but it won't work correctly for anyone wanting to modify it.
I'm probably way overthinking this by imagining that anyone would want to mod or edit this anyway, but...
i don't remember if action needs to be in the first block
I will try
yeah pls! this may help figuring stuff out
I feel like what you really want is ability to patch i18n of other mods, but pathos shot that down before 
Yep, is that. lol
Now I know about it, thx
ok, it is worth asking pathos if it's normal (i can activate the pathos-signal) and if yes, i can try editing the wiki
Maybe I'll just hardcode some replacement token into the asset parser, and state that any content mods need to provide the exact string.
Ugh, all possible solutions seem horribly messy in unique ways.
Yeah it's unfortunate
Didn't 1.6.9 fix something to do with dialogue actions?
hmm
Fixed $action dialogue command not working after a #$b# break.
it doesn't mention a #$e# break!!! a totally different case
entirely not the same (maybe it is)
ok so let's not activate pathos-signal yet
Lord Calamity, if you feel adventurous, you can try the 1.6.9 beta and confirm if it's fixed too
Use the tokenizable string system?
if you don't feel adventurous, well, i don't either, so i will not throw stone at you (too lazy to gather them)
I think the i18n token is specifically a Content Patcher feature? Otherwise how would it know which mod to look at.
I'm trying to test it right now, since I'm already on the beta, just not sure my test is going to work the way I want lmao
I dont have trouble for it being at the beggining, so is fine for me. Maybe tomorrow I can try it, but for what you said probably is fixed? Dunno
No, the in game class TokenizableString iirc
Yes, that's what I mean - I'm not aware of a vanilla way to use a TokenizableString to reference "i18n key in a mod".
CP has the feature, but in order to use localization with vanilla token strings it would have to be in the vanilla l10n data.
You can make your own asset maybe
I am making my own asset, yes.
Didn't work for me, acted like a second e break and the last box that opened was just the text action AddMoney 1000
I meant for the translations too
ok. Pathos signal? no pathos signal?
you did #$action ?
Maybe I fully misunderstood sorry
am still sad the tile Dialogue <token> still won't accept $action 
I think you probably understood. On the fence about whether implementing a custom translation system is worth it.
crap i think i found the problem. the wrong tile colors seemed vaguely familiar to me so i'm resetting the game now. fingers crossed it will FINALLY work
Please hold, I'm an idiot and missed the $ /lh
if i'm not wrong it seems to be a recolor conflict
seems like i missed a spot in deactivating some mods before testing 
Actually, maybe what I need to do is have two different assets; the mod has a JSON file but what's in that JSON is ever so subtly different from the asset format.
Okay, no need to alert Pathos, it is indeed fixed in 1.6.9
So when the mod loads its own JSON, it treats those descriptions as keys; but they then get loaded into an asset which has the actual string, which CP mods can then patch normally.
Assuming you pay attention and do it correctly lmao
I've been trying to design this with one data model but maybe that's been the problem all along...
Maybe u can use the game's String assets
It requires syntax like this from the other mod, rather than i18n token
"[LocalizedText Strings\\Objects:Weeds_Name]",
But can they reference their own strings that way, or only vanilla strings?
what kind of relations can i put down in relations for NPCS?
any string that is in a game asset; so as long as they put their strings in an asset, they can reference those too
Strings\Objects is referring to the vanilla asset yea
You can patch your own strings into though
This is only commonly used for maps though
tbh you can make up whatever you want
Might not occur to ppl to do this 
I dunno if that's a good idea though, since it would require any translators to do the same
Yeah pain
For their own language version of that asset
I18n is in a funky place of being ubiquitous but not quite game pipeline
Mm... I think I'll go with the separate data/asset definitions. It does mean there might be some hiccups if someone just tries to copy/paste the JSON from the base mod, but at least it's a defined spec.
@rancid temple just making sure: if i use CJB to test if seasonal recolors apply correctly, i should always sleep after changing the season. that's it right?
For internal mod data I could use a convention where the translation key isn't present in the data at all, it just uses the base name e.g. look up $"Rule_{Name}_Description" or somesuch.
Depends on how the recolor is being applied, but it can't hurt to sleep and reload the save
That way other modders wouldn't potentially see a "DescriptionKey" field and think they could just put their own key in there. I could even add a dummy description field to make it look like that's how it works (which it would, for them).
I wanna make a mod but ik literally no one will play it besides me and I know nothing about mods 😔. Sorry if I’m interrupting a conversation btw-
Or do a patch update in the console
Just make it anyways 
!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.
I might- idk if I have the capability to tho-
Almost all the mods I've made have been for me but released so anyone else can use them
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:
https://stardewmodding.wiki.gg/wiki/Tutorial:_Making_a_Custom_NPC -
Custom NPCs received many improvements with 1.6. For changes made, see the migration guide:
https://stardewvalleywiki.com/Modding:Migrate_to_Stardew_Valley_1.6#Custom_NPCs -
Some information on the NPC wiki page is still relevant:
https://stardewvalleywiki.com/Modding:NPC_data
Just make sure you're checking the migration page and tutorial first as this page still has outdated information on it as well. -
Aviroen has put together a template that will allow you to easily create a romanceable NPC:
https://stardewmodding.wiki.gg/wiki/Npc_template
It's just a lot of work you don't need any knowledge though
!anyonecancook
I would say NPC's are not technically difficult, they're just a LOT of work
A bunch of different systems working together
So a lot of systems to learn, but none of them particularly advanced
Plus the art and writing parts
I am making a mod where I am totally ok if I am the only one who played it, and I started from not knowing any C#. Make it anyway, post it on Nexus if you like, and if you have fun with the mod then it was a success.
And there are also lots of mod options that require no C#.
The character I wanna make is just really hated by the fandom lol
And the fandom is actually insane
It’s scary 😭
Instantly thought of Naruto and that guy from FF14
if you enjoy writing and all that jazz it's fine, as long as you don't get bothered by nexus comments, you should be relatively okay
It’s jjk
junpei?
It's ok there's many jjk npc mods
jjk must be serious business. lots of jjk npcs recently
Psure there's an audience
Oh ya it’s getting big right now
The manga is ending
What's jjk
What is jjk?
I love mahito they animate handy hands so good in the anime
Jujutsu Kaisen
I DO TOO I hate what he does but he’s an AMAZING villain
It's a manga/anime that's been getting pretty popular
But yeah mods is fanwork and should be as self indulgent as you desire
No shareholders stopping you 
i think the only things that will get you chased down is copyrighted music
so uh, avoid that
Well luckily idk how to do that
Soooo
I just love his character
And he’s just silly
Yeah I don't understand either pufferthumbsup
But I'm a silly small brain soooo
"you kids with your animoos and your mangos"
if nintendo found out about all the pokemon mods they would probably not be happy. please, no one tell them
We shall not utter a word
I liked it, but I've never really been big into jumping into a fandom like that
I stay away from the fandom for the most part
The Gojo fans..
(we know about the gojo fans, at least a little. his NPC mod has a billion downloads)
It’s terrifying
Like an actual billion?
is it good tho?
no, that would be silly. i should have used a fake number
What's gojo
Adds Satoru Gojo as an NPC in Stardew Valley. Dateable and marriable. (Doesn't replace any characters)
84k dl
Look I have the entire catalog of Taylor swift in my head so
It doesn't fit anything else
A lot more than average singular npc 
Oh that's a recent mod
You know what, I hate looking for mods on Nexus
haha fuck
ah good art, good enou-- i hate all of the horse mods
Pam horse is cultural heritage
A well liked character
NO
you know a mod is hot when its translation page looks like this
Well, that explains why I couldn't find it. Re: hating Nexus search, I turned off my adult content and it's flagged as such lol
I will never get more than my chinese translator, i'm too annoying in my updates
I actually think I need Nexus to autoflag all horse replacement mods as adult content
Fr

