#making-mods-general

1 messages ยท Page 612 of 1

proven spindle
#

doesn't have to be just for c# mods, works just as well for cp ones too

devout otter
#

Mm that means the wiki is kind of misleading. Should I edit it?

uncut viper
#

Well, try setting their social tab behaviour first to see if that's a workaround

devout otter
#

Crossing fingers.

severe cairn
#

yeah im looking a bit in the code too and

uncut viper
#

It's also not wrong, they do still need gift tastes too

severe cairn
#

theres this check conditions field which always returns false if the npc cant socialize

uncut viper
#

They don't need to be able to socialize to check for location dialogue if something else creates their Friendship object.

golden spire
#

if they don't want to socialise they have no interest in the location I guess ๐Ÿ˜›

uncut viper
#

Also if you change their social tab behaviour, either fully restart the game or view them in your social menu first, since it only creates the Friendship when a) the character is first added to the save or b) when viewed in that menu
i.e. a simple patch reload won't cut it

devout otter
uncut viper
#

To be honest looking closer at it, I'm not actually sure if they need gift tastes if they have the friendship

#

Interesting little quirk either way

devout otter
#

Aa yea I tested it and they indeed don't need gift taste.

uncut viper
#

Seems plausible to me that it was true at one point with how messy the function that controls this is

#

to be clear now that I've seen your edit, the social tab workaround will ALWAYS work for location dialogue, regardless of cansocialize

devout otter
#

Oh so Social NPC doesn't need gift taste anymore?

uncut viper
#

this is only for location dialogue

devout otter
#

Yea, I mean for location dialogue.

uncut viper
#

And conversation topics

#

It is not checking for gift tastes at all. it's checking whether or not the player has an internal Friendship object stored for that NPC

#

That usually gets created the first time you talk to someone

#

But you can't do that if you can't socialize

devout otter
#

OKay, I get it.

uncut viper
#

Alternatively it's ALWAYS created in the social tab behavior case

#

Or a different C# mod can create one any time

uncut viper
#

Location dialogue and CTs are just handled in a different check entirely to regular dialogue

devout otter
#

Which means for Social NPC, they instead need the SocialTab at least not set to HiddenAlways?

uncut viper
#

The social tab doesn't matter for social npcs

#

Because they have no problems getting a Friendship object created. It happens when you meet them

devout otter
#

Oh then this is not relevant to Social NPC anymore?

uncut viper
#

I can try to explain better when I'm back at my desk in a few minutes if you'd like

whole prism
#

oh no, does mod-showcase no longer allow embed?

#

that sucks ๐Ÿ˜ข

devout otter
#

While the gift taste is irrelevant to non-socials.

ornate locust
uncut viper
#

I'm back at my desk and will preface by really emphasizing that this is only relevant to location and CT dialogue. Consider it entirely separate from everything else RE: gift tastes and socialability.

whole prism
#

im wondering if its new thing

royal stump
#

the embed itself lacks an image on the previous one, but I'm seeing it for yours on the desktop pc client

ornate locust
#

I think maybe Discord is being weird

whole prism
#

oh weid lol

#

yeah discord is just being an apple!!

royal stump
#

embeds are pretty nonsense in general, so yeah SDVkrobusgiggle

#

it can help to manually include an image under the post and <> the link, etc

proven spindle
#

I can see the evelyn expansion embed but not the florence one (android)

uncut viper
# devout otter I'd appreciate it! My current understanding is currently, Social NPC needs to ei...

When you go to right click on an NPC, the first thing it does is grab the Friendship object for the player for that NPC, which is just a Thing that holds all the information about your relationship with that person.
Then it does a check: Did that Friendship object exist yet (i.e. the NPC was unmet) and can this NPC receive gifts? We'll call this the "didFriendshipExist" variable.
It checks this regardless of whether or not you're actually giving the NPC a gift. It's just checking if it's possible. An NPC can only receive gifts if they are Social and have gift tastes defined and are a villager (the last part is not relevant to custom NPCS)
If it IS possible to give the NPCs gifts AND the Friendship did not exist yet, then it then creates a new Friendship object for that player and stores it. This is the end of this check. This check's entire purpose is to create that Friendship for you (with a hardcoded exception for Krobus, who also has some initial meeting dialogue forced onto you).

Sometime later on in the function there is an entirely separate check for marriage, location, and CT dialogue. All three of these dialogue checks REQUIRE that the Friendship object we checked for earlier exists. If it didnt exist but the NPC was giftable, then it was created back in that first check and so it DOES exist by this point. However, if the Friendship did NOT Exist and the NPC is not giftable, then nothing created that Friendship object and so it still doesn't exist by this point. Hence, there will be no marriage, location, or CT dialogue (however that should obviously never happen in the marriage case)

#

In order to make that Friendship object exist by that point without relying on them being giftable, something else has to have created that Friendship object by the time the player goes to click on the NPC. One of these things is setting the Social Tab Behaviour to AlwaysShown. If it's AlwaysShown, then the game creates that Friendship object at the same time the NPC is loaded into the save

#

(Ignore that "didFriendshipExist" variable bit, I meant to remove that when I removed the rest for being too confusing lol)

devout otter
#

Alright. Thank you very much for the explanation.

#

Now I'm unsure on how to convey this practically on the wiki while still maintaining clarity...

signal nova
#

how can I select emotions in cutscenes?

devout otter
#

NOTE: For location dialogue to work, an NPC must have either gift tastes specified or the SocialTab field set to AlwaysShown. If CanSocialize is set to false, only "SocialTab": "AlwaysShown" matters. Is this understandable?

uncut viper
#

I would just say "If your NPC cannot socialize or does not have gift tastes, one workaround to allowing location dialogue to work is to set their SocialTab behaviour to AlwaysShown"

#

It's understandable just not accurate because the gift tastes, socialability, and social tab behaviour are closer to side effects than causes

#

I could make a mod that guarantees that every NPC has a Friendship object created when you go to click on em and then nothing else will matter because that's enough to make the location/CT dialogue work, even if your NPC is unsocial and no gift tastes and no social tab stuff

#

(and also because I wouldnt necessarily call this an intended behaviour of the SocialTab thing. It might even be a bug for all I know, it might be supposed to skip unsocial NPCs)

devout otter
#

I understand that. But then to be very accurate I'd need to have a long explanation about Friendship object and how it relates to SocialTab and gift taste under the Locational dialogue section.

uncut viper
#

I mean what I suggested just now doesn't include any of that and would be accurate

devout otter
#

Note: for location dialogue to work, your NPC must be able to socialize or have gift tastes. If your NPC cannot socialize or does not have gift tastes, one workaround to allowing location dialogue to work is to set their SocialTab behaviour to AlwaysShown. Like this, then?

uncut viper
#

Also one quirk to note is that you could have the AlwaysShown thing be conditional, as long as it was there on save load it'd be fine if it was hidden afterwards

#

I would tweak "must be able to socialize or have gift tastes" to "must be giftable, which requires them to be social and have gift tastes" since its an AND not an OR thing

#

i.e. "the npc must be both of these things. if they cant be both then do this workaround instead"

devout otter
#

Note: for location dialogue to work, your NPC must be giftable. If your NPC is not giftable (either because they don't have gif tastes or is not social), one workaround to allowing location dialogue to work is to set their SocialTab behaviour to AlwaysShown. Alright, is this okay, then?

uncut viper
#

looks fine to me SDVpufferthumbsup

signal nova
golden spire
#

You just use $0, $1 etc like normal

#

as you would in any dialogue

signal nova
#

$?

golden spire
#

have you made any normal dialogue?

signal nova
#

Like changePortrait Lewis$1

signal nova
#

or is it in the speak command?

#

speak Lewis$1

devout otter
#

speak Lewis \"Blah blah blah.$1\"

signal nova
#

Dang, and that's how you change the expression? ๐Ÿ˜‚

golden spire
#

same way you do it in dialogue, yes

signal nova
#

I have done dialogues - not with expressions

golden spire
#

now you can go back and give them some too ๐Ÿ˜›

clever monolith
golden spire
#

change portrait is for changing the sprite sheet

signal nova
#

Ahhh

signal nova
#

I'm thinking it's after

#

but I want to make sure

#

I meant not before the blah blah blah, meant THE blah blah blah

devout otter
#

It only changes the dialogue it belongs to, which is the blah blah blah.

signal nova
#

okay that's neat

golden spire
#

speak Lewis \"Blah blah blah.$1#$b#hmmmmm$4#$b#I see...$2\"

signal nova
#

What are the #'s and the b's?

devout otter
signal nova
#

Are these the ids?

golden spire
#

yes, the first 6 to have letter ids too, but can just use the numbers

signal nova
#

Dude I'm never finding the right things on that wiki lol

golden spire
barren tapir
#

Just uploaded a batch of sprites for the next update. Now it's time to tackle the gosh dang robit

autumn tide
# signal nova Are these the ids?

made this lil template thingy for portrait-making but it may be helpful for identifying placements?
-# sorry for pinging if that's not your preference!

autumn tide
whole prism
#

Ur name has cloud in it, what's your final words?

autumn tide
#

gay

barren tapir
#

How do I add a custom Monster class to whatever dictionary Monster.cs is using?

I'm currently getting the following error:

This mod failed in the GameLoop.DayStarted event. Technical details:
System.Collections.Generic.KeyNotFoundException: The given key 'Robot' was not present in the dictionary.
   at System.Collections.Generic.Dictionary`2.get_Item(TKey key)
   at StardewValley.Monsters.Monster.parseMonsterInfo(String name) in D:\GitlabRunner\builds\Gq5qA5P4\0\ConcernedApe\stardewvalley\Farmer\Farmer\Monsters\Monster.cs:line 414
brittle pasture
#

Data/Monsters is where monster data is

#

it seems like you need something in there for your monster

tiny zealot
#

if your class extends Monster then you'll need an entry for it in Data/Monsters, yes. the Monster constructor calls a function that parses the data out of it

autumn tide
#

hellooo would non-object item IDs still work for item delivery quests? the wiki just says this

#

specifically I want the player to deliver the trash catalogue to dwarf- shenanigans etc

uncut viper
#

as long as it can be gifted

brittle pasture
#

I don't think you can gift furniture

uncut viper
#

dont know if furniture can without mods though

autumn tide
#

gotchaaaa

uncut viper
#

actually it might not matter idk try it

autumn tide
#

...could I do a conditional patch that makes the trash catalogue giftable for the duration of the quest?

#

maybe use spacecore so that only dwarf can accept it etc

uncut viper
#

actually scratch that "it might not matter" it has to be an Object

autumn tide
#

aww :(

uncut viper
#

there is no "giftability" setting for things. its determined by item type

autumn tide
#

aaah okay I see, thank you buttons SDVpufferheart

uncut viper
#

Furniture is a subclass of Object but I don't think it can be the ActiveObject in code

#

but im not 100% sure what can or cannot be considered the ActiveObject

autumn tide
#

..I only know the CP stuffs and even there I'm not the best sooo

uncut viper
#

but it means for sure that something like a Hat or other clothing cannot be

#

or Tool

autumn tide
#

gotchaa

uncut viper
#

you can always try anyway just dont be surprised if it doesnt work with furniture

barren tapir
brittle pasture
ivory plume
#

Sure! It could be a good place to document the best ways to do that (e.g. naming conventions and how to detect when the asset is changed).

brittle pasture
brittle pasture
# ivory plume Sure! It could be a good place to document the best ways to do that (e.g. naming...

I'll add this paragraph to the content packs page, feel free to chime in (pinging @lucid iron as well as someone who also has strong feelings on the matter SDVpuffersquee )

Note that a custom content pack format is not required to provide integration with content mods; an alternate method is to provide a [[Modding:Modder_Guide/APIs/Content#Add_a_new_asset custom game asset]] that other mods (including Content Patcher packs) can edit. The advantage of custom assets is that both other C# mods and Content Patcher packs can edit them via the content pipeline, with the latter benefiting from convenient features such as tokens, conditional loading and targeted edits, removing the need to implement similar features in your mod.

uncut viper
#

The objective part of me thinks it shouldn't be as focused on just Content Patcher since Any mod can choose to use it... but the practical part of me also knows that CP is the only one thats relevant here like 99% of the time anyway

lucid iron
#

I think it's kind of the important bit practically speaking

#

If CP doesn't exist in the shape it currently does I wouldn't feel as strong

uncut viper
#

Hence why that's how the practical part of me feels

#

But there's some integrations I've personally done with such frameworks via C# and not the intended CP route though so it's not 100% SDVpuffersquee

brittle pasture
#

I think the C# part is also important (even though probably everyone who cares are already here) since AFAIK there's no easy way to do make a custom content pack for another mod in C# without raw JSONs?
There's fake content packs but I'm not really familiar with that

lucid iron
#

Yeah and while it's annoying as another C# mod, I'd say it actually hits impractical level if it's a content pack for SMCPufferjail

uncut viper
#

I didn't mean making content packs via C#, I just meant that putting your stuff through the content pipeline isn't making it Content Patcher accessible, it's just making it content pipeline accessible, because it's also C# mods you're benefitting, is all I meant. Which is what you wrote ("both other C# mods and Content Patcher packs") but in my stronger feelings (/lh) should be more equally weighted ๐Ÿ˜›

#

But again though that's just in the "technically correct" portion of my brain. The practical portion of my brain agrees that all things considered, it's basically making it Content Patcher accessible

brittle pasture
#

ah yeah I glanced over that part lol
but hey once Composer is released we can add it SDVpufferwoke

uncut viper
#

just in time for the 1.9 migration page

#

at the current rate of progress anyway

half tangle
#

I think it might make sense to rephrase

an alternate method is to provide
to make it more clear that this alternate method is very common and not some niche choice

#

If I didn't know the value of making something available to the content pipeline (and that was me back when I first made a custom content pack) or of the utility of CP's tokens and other tools, I would be hesitant to consider "an alternate method"

uncut viper
#

I would agree with that
Maybe just "the most common method" instead of "an alternate method"

#

though tbh I'm just kinda assuming that its the most common at this point, I don't actually have the numbers of pipeline-integrated packs vs contentpackfor packs still when counting old contentpackfor frameworks

#

I assume that one wiki page listing them all would have the numbers but they're not in my brain ๐Ÿ˜Œ

brittle pasture
#

next and hopefully final version (sneaking in some links to the frameworks page)

Note that a custom content pack format is not required to provide integration with content mods; the most common method is to provide a [Modding:Modder_Guide/APIs/Content#Add_a_new_asset|custom game asset] that other mods (including Content Patcher packs) can edit. The advantage of custom assets is that both other C# mods and Content Patcher packs can edit them via the content pipeline, with the latter benefiting from convenient features such as tokens, conditional loading and targeted edits, removing the need to implement similar features in your mod.

See the wiki page for [Modding:Modder_Guide/APIs/Content|loading and editing content], as well as the [https://stardewmodding.wiki.gg/wiki/Tutorial:_Making_Framework_Mods |external tutorial for making framework mods] for more info. The rest of this page details instructions for defining custom content packs formats.

uncut viper
#

looks good to me boss

half tangle
#

yeah, I like that

brittle pasture
#

it is done SDVpufferrad appreciate the Council's feedback

spark wharf
#

Need some assistance on spawning conditions of this fish I'm trying to mod... I would like for it to change locations depending on the season but I'm not sure how to go about doing that. I currently have " "Condition": LOCATION_SEASON "Forest spring", "Mountain summer", "Town fall", "Desert winter"," in the Location Data but it doesn't work so it's probably not correct..

devout otter
#

What asset are you patching that onto?

brave fable
#

that doesn't look at all like valid json as you've sent it. can you upload your actual json file to https://json.smapi.io/ ?

spark wharf
latent mauve
#

Okay, so, you probably want to target each Location in Data/Locations separately, you can't just throw them all into the Condition.

spark wharf
#

So have the whole section under "Entries" just copied 4 times, one for each location?

latent mauve
#

Also if you are only allowing the fish to be caught in each location for one season only, you can use "Season" instead of Conditions in your entry.

spark wharf
#

Is that going to be a problem if this is a Legendary fish with a max catch of 1? Like it won't count each entry as a separate fish?

devout otter
#

In that case you also put the PLAYER_HAS_CAUGHT_FISH Condition.

latent mauve
#

^

#

To be more precise, you'd likely want the negative version

latent mauve
#

If so, you may want to set the Precedence field as well.

spark wharf
devout otter
#

You need 4 separate EditData actions, each with different TargetField.

latent mauve
spark wharf
#

Oooh okay, I gotcha. Lets see if I can fix it...

latent mauve
#

(you can exclude any fields that are null if the default is null)

devout otter
latent mauve
#

Thanks Dolphin!

#

Current would be important to include so that only the player fishing got locked out of the fish. ๐Ÿ˜›

#

You can also remove the "Format" line if you're doing this JSON as an Include, I just added it so the syntax checker wouldn't yell at me

spark wharf
devout otter
#

You need a comma after each patch action to separate it from the next one.

spark wharf
latent mauve
#

Looks more correct to my tired eyes

spark wharf
#

still no luck getting this thing to spawn in any season SDVpuffercry

latent mauve
#

What's your Data/Fish entry look like?

spark wharf
latent mauve
#

and you've already checked that you're level 5 when you're trying to fish it up, since that's the minimum required level in your fish data?

#

Next thing is probably to do a patch export "Data/Locations" and patch export "Data/Fish" to make sure that your changes are in there.

spark wharf
#

yeah I cheated my skill up to level 10. I put those commands into SMAPI?

latent mauve
#

Yep!

#

It'll create a folder called patch export next to your Mods folder, and the JSON files will be in there

#

So you can open them up and check that the data got applied

spark wharf
#

hmm the locations one didn't go through but the fish one did. it told me "[Content Patcher] The 'patch expopatch' command isn't valid. Type 'patch help' for a list of valid commands." for Data/Locations

latent mauve
#

ah, you might have accidentally clicked your cursor in the middle of the command

spark wharf
#

o right I must've, my bad

latent mauve
#

You have a Data/Objects entry for the fish too?

#

It does look like "Name" in your fish entry needs to be identical to your ID, so that will need to change.

#

You would use the Data/Objects entry to change the Display Name of the fish when it's caught or in inventory

spark wharf
#

oo alright I'll switch that, maybe that was the problem...

latent mauve
#

"chatoyanttiger.possumfish": "Ichthyodelphi/95/mixed/30/42/2100 2600/spring summer fall winter/both/683 .2 689 .4/4/.15/.15/5/false"
Ichtyodelphi needs to be chatoyantiger.possumfish here.

#

I don't know if SMAPI/CP is picky enough that DisplayName has to be capitalized correctly, either.

spark wharf
#

I suppose we'll see!

latent mauve
#

As a general rule, though, any time an entry is asking for "Id" or "Name", it needs to be the exact same as the internal ID of the data object you're using for the key

spark wharf
#

Still nothing... argh

#

I did look at the exported Fish and Locations, its on there and it looks correct..

latent mauve
#

Okay, and you are definitely there at the correct time and place?

spark wharf
#

yep, the forest pond during spring at 10PM

latent mauve
#

Can you give yourself the fish object at all, to make sure that the object did in fact get created?

spark wharf
#

Yeah I can search for it with the spawn item menu, can spawn it in and even put it in a fish tank fine

latent mauve
#

Hm

#

And you haven't caught the fish before at any point in this save, right? It doesn't show up as caught in your collections tab or anything?

spark wharf
#

Correct, I made a brand new test save after checking to see if I could spawn it in

latent mauve
#

Were there any errors in your SMAPI console?

spark wharf
#

Some yellow stuff for unrelated mods but no red and nothing that mentions the mod

#

going through everything for any spelling errors my dyslexia might have missed SDVpufferthinkblob

latent mauve
#

Wondering if it's something silly like us missing a qualified ID somewhere

#

Try putting (O) in front of the ItemId in your Data/Locations entry

#

To tell it to find the object

#

The wiki doesn't say it has to be a qualified ID, but the vanilla examples are

spark wharf
#

When I was gandering at some examples I did see some (O)s but yeah I didnt think they were necessary.. maybe they are

finite viper
#

hey, i'm making an addon for a mod that uses a lot of aliases (AliasTokenNames in CP)
is there a way to access these aliases from mod?

spark wharf
#

still nothing SDVpuffersob what are we missing

latent mauve
spark wharf
latent mauve
#

It's the 11th field in the slash delimited list item

spark wharf
#

ooh wait I do see that, I had to really squint (my brain is having a hard time sectioning out all the numbers in between the slashes) its currently set to "5" and I'm pretty sure when I set it to that I was just copying the difficulty of another mod's fish that was rare, I'll pick something else and see if it changes

latent mauve
#

I do unfortunately have to sleep, but good luck!

spark wharf
#

thanks for all the help!!

vernal crest
spark wharf
#

Manually fishing for it with Iridium Pole + bait, I also have Visible Fish and and um... another mod I don't remember the name of right off the bat that shows me catchable fish in the area

vernal crest
#

You should use Lookup Anything, it's more reliable

#

And are you checking this with other fish-adding mods installed?

spark wharf
#

Oh yeah, I did look it up in Lookup Anything as well. It showed weather and time green checkmarked, and the location was highlighted. and yeah I do have a few mods that add fish

vernal crest
#

Ok so LA is showing that the fish should be present?

spark wharf
#

Correct

verbal glacier
spark wharf
#

I was just using Deluxe Bait

vernal crest
#

Are there lots of other fish in the area?

verbal glacier
spark wharf
#

No at the current time this fish is supposed to appear, there are only 3 other available fish

#

Ye I could, or I could spawn the bait itself in

#

yeah even the bait isn't even working x.x

#

just catching trash and the other fish, and it still doesn't show up on the UI or with Visible Fish

#

I am reading this right, right? everything should be good Dx

verbal glacier
#

i believe visible fish shows aquarium fish so you need that for it show up (could be wrong on that though)

spark wharf
#

Its got an aquarium sprite and everything, I spawned one in on a previous test save and checked it

vernal crest
#

Were you able to catch it before you added the !PLAYER_HAS_CAUGHT_FISH current chatoyanttiger.possumfish condition?

spark wharf
#

No it has never appeared

#

I feel like the multiple seasonal spawn locations might be bungling it but I really like that idea...

vernal crest
#

Your min and max distance from shore are the same which means that you have to land your bobber on the exact correct tile distance to catch it

spark wharf
#

Since the last json post I changed the min to 1

vernal crest
#

Try removing every requirement that makes it more difficult to catch. The times, the seasons, the min and max distance, the boss fish, the max catch, the condition, the minimum fishing level.

spark wharf
#

Alrighty

vernal crest
#

(I'm going back to my game and there's a good chance I will forget about discord so you may want to ping me when you have results)

spark wharf
#

also unlike the last one, Lookup Anything actually has a little checkmark next to the location SDVpufferthinkblob

blissful panther
#

(That might just be because there's only one location here now, where before there were multiple?)

spark wharf
#

yeah very likely

#

I'll add one more location and see if it flips out

#

seems to work fine with two locations at least... I wonder what it's hangup is with the original json

vernal crest
tribal dew
#

Hello, I'm trying to create a custom map as a mod and I need a little guidance how to setup a small quarry area?

#

Spent a lot of time in Tiled, learning as I go. Marked red is the area I wish to spawn quarry ore in. I undestand it has to be square

autumn temple
#

i only know how by using ftm and i think its like this ""Areas": [
{
"UniqueAreaID": "MyCustomQuarry",
"MapName": "YourMapName",
"IncludeCoordinates": [],
"IncludeTileProperties": [
{
"Key": "MiningSpawn",
"Value": "Quarry"
}
],
"MinimumSpawnsPerDay": 2,
"MaximumSpawnsPerDay": 5,
"SpawnTiming": { /* Set your timing here */ }
}
]

spark wharf
#

after a lot of minor individual edits, save reloading, and brain hurting, it appears the Min and Max DistanceFromShore were problematic so I just did away with them.. I'm still testing but at least it's showing up now with the original json just without those two values

tribal dew
#

Thank you for your guidance and kind words : ) I understand you mean to put this code in [FTM] My mod/content.json file

#

I'm gonna lookup documentation for Farm Type Manager

dawn ore
#

Hi all, is there any guidance on do's and don'ts for optimisation when mod making, like what types of things had a large performance impact and what is negligible?

hard fern
#

Many Ontimechanged
Many cursors edits

dawn ore
#

I have a machine that I want to look different from 9am to 3pm, and was using ontimechanged to do that, is that the right approach?

I don't think I do any cursor editz

hard fern
#

Well if it's just one machine that's fine

#

It becomes a problem if you have a lot of things editing for example, a map and using ontimechanged to do so

woeful lintel
#

I don't know if you've been told this already, but there's no reason to have a config retexture when you can just make both furniture since players will use catalogues anyway (so everything is free)

jaunty shuttle
#

I thought about it but they canโ€™t really be used together, ones vanilla style and the other is bog style

gray bear
#

pretty!!!

#

would you consider making one that is VPR styled? or just desaturated. i love whimsical furniture,,, mushy good

#

kids room real cool now

jaunty shuttle
#

Ahhh ty!! DiamondLove
Hm, idk how much VPR differs from what I currently have, but if itโ€™s something relatively simple to do then yeah I might :3

gray bear
#

its generally just a bit of muted colors/less saturation. ๐Ÿฉท

jaunty shuttle
whole prism
#

ommgg

#

my house doesnt get that big : (

torpid sparrow
#

upgrades

gray bear
#

you can expand it in robin's shop

whole prism
#

yeah but like an entire room? :0

torpid sparrow
#

yes

whole prism
#

i never seen it before

torpid sparrow
#

its vanilla

whole prism
#

dang

#

is there a mod that lets u make even bigger thats stable?

#

ik a lot of them r great but some arent as stable

#

hmm

#

wrong channel to ask, elmme go to the other one

woeful iron
#

I'm checking my plan before implementing it. I know you can retrieve a mod given its id via the Nexus API. I know you can get this from the mod's manifest. Any reason I wouldn't be able to collect all the IDs and redownload them?

Writing a little export mod list, import mod list thing

Use case 1: given a mod folder, user exports list of IDs
Use case 2: given a list of IDs, user redownloads mod list, constructing new mod folder

clever monolith
uncut viper
#

Nexus only allows automated downloading for premium accounts and if you have a large enough mod list you'll be taking a very large chunk out of your API quota if you do it too much in one day. But you'd have to be downloading a ton for that, so it's mostly the premium thing.

wanton pine
#

is there a limit to BuildMenuDrawOffset ?

brittle pasture
#

I think people have made stuff like HTML parser scripts for non-premium downloads
not a lawyer but I think it's technically against Nexus TOS; whether they care enough to enforce it is another matter (for small scale downloads, probably not, but do not quote me for it)

brittle pasture
uncut viper
wanton pine
whole prism
#

this may seem like an insane question

is it possible to change your map mid-game? I dont mind putting all my stuff inside my house, but i would really like a dif map (since im using frontier rn)

#

or is it impossible

#

i havnet really unlocked anything

#

but was curious

brittle pasture
#

Farm Type Switcher lets you switch

whole prism
#

o

brittle pasture
#

correction: Easy Farm Switcher

#

getting my names mixed

whole prism
#

good to know

#

!!

brittle pasture
#

also note that it's an object with X and Y coords

pastel tusk
#

Ok hello

wanton pine
molten jackal
#

๐Ÿ˜ฃ ok so.... Mizu updated her animal mods to dynamically pull the internalassetkey ids from the i18n for translation purposes.... how would one go about approaching that with content patcher now, because I can no longer target the ids the same way

pastel tusk
#

So I wanna sorta upgrade sebastian to a nerdier flavour fitting what I think a software dev with an engineer sister should be like ๐Ÿ˜‚๐Ÿ‘‰๐Ÿ‘ˆ

And wanna do that for my games not intending to publish or anything like that.

And I know how to code but havent used a game engine before to develop a game or smth

Where can I start from?

brittle pasture
molten jackal
#

yeah one sec

#
                "Common": {
                    "ID": "{{i18n:BlondeReindeer_name}}",
                    "Weight": 1,
                    "Texture": "{{InternalAssetKey: assets/BlondeReindeer.png}}",
                    "BabyTexture": "{{InternalAssetKey: assets/BabyReindeer.png}}"
                }
            }```
#

this is what the skin entry looks like now

#

in mizus mods

wanton pine
#

Behold the difference between a y offsets of 96 and 112

#

Whhhy

brittle pasture
ocean sailBOT
#

Making mods can be broadly divided into two categories:

Usually itโ€™s easier to start with making content packs, since you don't need to learn programming.

pastel tusk
#

Also y'all modding using engines or something else?

round dock
#

If you just want to edit his dialogue/events/sprites, all of this is doable with Content Patcher

brittle pasture
#

actually maybe it's for displaying in the AT menu?

pastel tusk
brittle pasture
#

oh yeah it seems like it is

round dock
# pastel tusk OH awesome command Are there other commands I can use or like a reference manua...

The Stardew wiki has an excellent guide on mostly everything Content Patcher; there are several modding guides found here as well

Stardew Modding Wiki

Interested in making a mod for Stardew Valley? Then you've come to the right place! Check out the list for step-by-step tutorials to make your very own SDV mod.
Have you made a mod before and want to share what you learned? Awesome! Just create a new page on this wiki, call it "Tutorial: How to do a thing," and put in your advice, screenshots ...

molten jackal
#

I honestly have no idea what that means seered but it broke my cp file

pastel tusk
#

Thanks

brittle pasture
round dock
brittle pasture
#

(but also consider reaching out to Mizu and request that the textures are loaded normally so other mods can more easily reskin them)

round dock
#

It pretty much lays down a lot of things you'll need to know about making CP mds. C# mods, on the other hand, change fundamental game mechanics. I'm not very knowledgeable of the latter but you have our awesome lovely C# nerds to guide you.

molten jackal
#

ok im just gonna ask cuz I can't keep up and people are complaining at me SDVpetgoat

pastel tusk
round dock
uncut viper
#

Yes

brittle pasture
#

(honestly it's probably not a good idea to localize the IDs in the first place since it means the skins break if you switch languages but I understand that there's no good workaround)

gray bear
#

someone made a chart of what mod use what,,, but it was lost to time i think

round dock
gray bear
#

generally unless you're like, rewriting a mechanic of the game CP is used

pastel tusk
gray bear
#

uhhh, fishing, farming etc

gray bear
#

there's also frameworks to do specific things, but editing stuff is usually CP

#

it does depend on the hyperspecific thing you're doing

pastel tusk
#

So yeah ig just CP

gray bear
#

oh editing events is just CP

round dock
#

-# or making new ones!

uncut viper
#

(If you're significantly altering an existing event you would be better off just writing a new one)

pastel tusk
#

Tho if I want spouse doing stuff like fish and cook the fish (just an example), that will be editing game mechanics right?

gray bear
#

you can just, do an event where do they do that

fossil osprey
#

When they said "editing a game mechanic", it's more like "changing the fishing minigame" or "adding a step in crop cultivation"

pastel tusk
#

Oh

fossil osprey
#

Things that aren't already in the game

gray bear
#

but if you want them to do that naturally uhhh well which spouse actually fishes

pastel tusk
#

Okii okii

gray bear
#

none of em. they can just have a dialogue saying they did, really

fossil osprey
#

So making an event where an NPC fish is just an event with animations, and that would be simple since the game does that already :)

pastel tusk
gray bear
#

i,, am not 100% how willy's fishing sprite is used

#

is that a C# thing,,,

pastel tusk
#

Maybe..

gray bear
#

also willy doesn't actually fish, he just looks like he is

pastel tusk
#

OH ๐Ÿ’€

fossil osprey
#

I think spacecore (or another CP-style framework) allows for wide sprites without C#

gray bear
#

god bless spacecore

#

yeah no character actually fishes like the player, they're implied to. the power of video games

pastel tusk
#

Yeah ๐Ÿ˜‚๐Ÿ˜‚๐Ÿ˜‚

fossil osprey
#

Just fancy well-placed animation ๐Ÿ™‚โ€โ†•๏ธ

#

NPC are just that in the end

brittle pasture
molten jackal
brittle pasture
molten jackal
#

yeah that's what I thought, I retargeted JUST the grey reindeer and it patched in but to the wrong number id lmao

#

I'll talk to mizu tbh I think this might be too big a mess

brittle pasture
wanton pine
brittle pasture
#

now try smaller numbers? it sounds like it's working fine and you just need to fine tune the values

#

(i'm on my phone for the next few hours so cant help beyond these posts)

wanton pine
#

on a mostly unrelated note, what would happen if I changed "TexturePath": "{{InternalAssetKey: assets/horse.png}}"
to "TexturePath": "{{ModId}}/Ducati" when using Custom Mounts? Asking because I want to do a group of image edits.

brittle pasture
#

as long as it's the same png it shouldnt matter

golden spire
# gray bear is that a C# thing,,,

The animation is hard coded to tell the game to use a specific frame size for that specific animation name(dick_fish), which limits you to frames in the same spot Willy has, but as mentioned spacecore lets you have freedom from beyond that

strong kite
#

Can I have a condition in content patcher identify when the Desert Festival isn't happening without just saying not days 16, 17, or 18? DayEvent in the docs only lists active festivals and not passive festivals, unless it's a custom festival name in FestivalDates?

#

I guess I could just disclude those days but my brain is being stubborn

brittle pasture
#

I think only if you can use GSQs

strong kite
#

But running GSQ's for Content Patcher conditions is inefficient or something, right?

brittle pasture
#

you cant use GSQs in CP conditions

strong kite
#

Alright yeah that too LUL

brittle pasture
#

what is this for?

#

(just using dates probably works in 99% of cases but eh)

strong kite
#

For when a map patch is active, It's got some pretty specific conditions but yeah I think just using the dates will be fine

brittle pasture
#

(since theoretically a mod can change the desert festival dates)

strong kite
#

There's no specific reason why not on festival dates other than just so it's not active for all of spring

#

So it should be fine, my brain was just being a little stubborn

pulsar fossil
#

What's y'all opinion on auto fishing, is it a big cheat or actually not so big

fossil osprey
#

whatever, your game your rules

pulsar fossil
#

"My life, my rule"

fossil osprey
#

one full of wisdom meme ๐Ÿ™‚โ€โ†•๏ธ

strong kite
#

Gotta love realizing I only need the location to be a certain size after I've already made up the design at a certain scale heehee
At least this way I can remove fencing if I have more ideas for decoration (which I still need to add lol)

latent mauve
#

There's nothing wrong with using a mod to make the game experience more enjoyable for yourself if fishing isn't your thing โค๏ธ

alpine phoenix
#

Hey does anyone know if there is a way to add custom music for 1.6?

uncut viper
#

You can just add it to this asset

#

There's a content patcher example on there

alpine phoenix
#

Awesome thanks!

ornate drift
#

Can you do ChangeLocation on the same map?

#

cause i wanna move to a different part of the map, like the bottom left of the hospital instead of the topright

ornate trellis
#

since its still the same location i doubt it? not completely sure tho

ornate drift
#

maybe just fade and change viewport?

ornate trellis
#

yee thats probs the way to go. is it a big jump or more a "player/npc walks somewhere else on the map"?depending on that you can use diff viewport commands

ornate drift
#

No walking, they get warped instead

ornate trellis
#

oh yeah, then a simple viewport change should be enough probably

spark wharf
#

how do I make my fish in a fish pond not produce roe? Do I add roe as a ProducedItem but just make the chance 0?

latent mauve
spark wharf
#

Yeah I have a fish pond json and I got it to spawn the items I want but its also spitting out roe which I do not want

#

I tried setting the roe chance to 0, with 0 min and max quantity but that didn't work

latent mauve
#

share the JSON?

spark wharf
#

I was gonna try setting the required population to something absurd like 100 but if you have other insight I'd love to hear it

latent mauve
#

So, a few things to try:

  • Remove the entry for 812 (roe) entirely from your ProducedItems section
  • Change your ItemIds to be qualified IDs (with the O in parentheses)
  • Add the "Condition": "ITEM_ID Input (O)chatoyanttiger.possumfish", to each item's data model in the ProducedItem list
spark wharf
#

ok setting the required pop too 100 did not make it stop producing roe ๐Ÿ˜ซ

latent mauve
#

Selph may know more

spark wharf
#

Alright I'll try that

brittle pasture
#

and you dont have a mod like aquarism?

#

can you also show your object data

spark wharf
brittle pasture
#

Scaling roe production: Roe is handled separately from other items. Roe entries in FishPondData are ignored, and instead each fish species is given a roe production chance proportional to the inverse of its value; i.e., the higher the value of the fish, the lower its chance to produce roe.

latent mauve
#

oh, nice catch!

spark wharf
#

omg

#

glad I test things with my usual loadout so I can catch mod interactions... is there no way to stop it with aquarism?

brittle pasture
#

afaik nope

#

though best bet is asking dalion

#

well it seems there's a workaround: ||make it an algae item with algae_item tag||

#

||probably would also make your fish randomly spawn in empty ponds||

latent mauve
#

It would be nice for there to be a specific tag or something that skips or disables Aquarism's roe production intentionally, but yeah, that'd be on Dalion's side.. xD

spark wharf
#

Lmao... alright well, maybe that can just be a special interaction if you have Aquarism, like you're so good at fishkeeping you can get eggs out of a live bearing animal...

latent mauve
#

That'd be a pretty funny request honestly: "My fish is a mammal, please help me turn off the roe production for it"

spark wharf
#

Not certain how active they are but I'll ask! I still wanna publish today so I suppose it'll just produce roe in the meantime. At least it's not a common occurance

brittle pasture
#

I guess you can rename the roe/flavored to something else (you can rename flavored variants of items via strings/objects)

#

you can't change the sprite but that's probably good enough

spark wharf
#

hmm that's an idea. How might I do that?

ornate trellis
#

just make em give you marbles

brittle pasture
#

search for Cranberries in Strings/Objects

#

I don't recall if it's documented on the wiki

spark wharf
#

I still might keep it Roe, name it like Peculiar Roe or something like that

#

hm yeah I am really not sure how to go about doing that without some kind of documentation to gander at as a base ๐Ÿ˜ซ i'm a very visual learner... so original plan, just let Aquarism do its thing while I leave a comment on the Aquarism mod page and maybe DaLion knows a way and if not oh well. at least it shouldn't give roe if you don't have the mod right?

brittle pasture
#

ok it's stashed somewhere on the 1.6.9 page lol

brittle pasture
#

you'd edit Strings/Objects with a new entry for Roe_Flavored_(O)YourCustomFishId

#

and AgedRoe_ for aged

#

there are examples but only for the Hungarian localization

spark wharf
#

man... I'm sorry, I just don't understand. i'm still really new to all this. I may just leave it but I thank you for investigating it

latent mauve
#

You'd also have to deal with the preserved version from throwing it in the Preserves Jar

brittle pasture
#

that's agedroe as mentioned

spark wharf
#

is there a way I can change the 23% chance to a higher value?

brittle pasture
#

only with C# wrong, see below

spark wharf
#

๐Ÿ˜” okay

brittle pasture
#

For all ponds besides Legendary Fish and Legendary Fish II ponds, the base chance that an item is possible ranges from 23% to 95% (base_chance = (population of pond ร— 0.08) + 0.15).

#

For Legendary Fish and Legendary Fish II ponds, the base chance that an item is possible is 50%.[2]

spark wharf
#

The fish is tagged as a Legendary

sturdy crow
#

Hii does anyone know if theres a mod that helps with mail that keeps repeating I keep getting this letter and I have had no luck finding which mod its from SDVpufferwaaah

brittle pasture
#

have you tried searching your entire mod folder for the string

sturdy crow
#

I have not

#

I shall go do that now

brittle pasture
#

you can turn that up in your fish data

#

Lookup Anything may not take that into account though

spark wharf
#

In the fish pond data?

brittle pasture
#

yes

spark wharf
#

Would that go in each produced item section?

brittle pasture
#

it's a top level field

whole prism
spark wharf
#

oo I gotcha, I'll give it a try

whole prism
sturdy crow
whole prism
#

tyty

sturdy crow
#

Ofc!

sturdy crow
cyan jungle
#

how do you make it so that before you first meet your npc they show up in social tab with "???" like vanilla npc and also add them to the initial quest of meeting everyone?

spark wharf
sturdy crow
brittle pasture
cyan jungle
#

i did that and still doesnt work. what should SocialTab be?

brittle pasture
#

UnknownUntilMet, which should be the default if you don't set it

cyan jungle
#

let me try that

#

I got this error ;-; :
[Content Patcher] Can't apply data patch "Osmar NPC > Include Osmar Data (from Data/NPCData.json) > Osmar's Disposition > entry #1" to Data/Characters: failed converting entry to the expected type 'StardewValley.GameData.Characters.CharacterData': Error converting value "UnkownUntilMet" to type 'StardewValley.GameData.Characters.SocialTabBehavior'. Path 'SocialTab'..

brittle pasture
#

UnknownUntilMet

#

you're missing an n

cyan jungle
#

oh SDVpufferblob thats embarassing

brittle pasture
#

also make sure you started a new save to test

cyan jungle
#

it says UnknownUntilMet is not valid

#

oh wait i saved the code again and it worked!

#

i have the mod that shows you where characters are on the map is there a way to make it so that until you meet the npc, their name also appears as ??? in the map?

brittle pasture
#

seems like something that mod should change on their side

ornate locust
#

You can exclude characters from that mod temporarily

#

uhh hang on lemme find the thing

cyan jungle
#

Well i do want the mod to work ;-; i just thought it was something it did

ornate locust
#

No, it's temporary, like "Don't show them until they have been met"

cyan jungle
#

ouu okie

ornate locust
#

There is a setting that just lets you see everyone

#

but it's on the user settings end

strong kite
#

I'm trying to make an animation of a single entity that appears to roll across the map using map tiles and like... dear god I do not have the brain power to figure out the timings or positions to make this look good ๐Ÿ˜ญ

sturdy crow
barren tapir
#

I'm hoping to tackle the error I was getting yesterday after dinner.

I ended up being unable to work on it last night due to work reasons

barren tapir
warped mesa
#

Hey all, need some help regarding dialogue. I'm trying to change Penny's dialogue, and countless times I've opened the game and tried to see if it works, to no avail. In my save, Penny is married to me. She should say a few select lines. I set up the whole dialogue system like this data["Outdoor"] =
...
// INDOOR
data["Indoor"] =
...

// SEASONAL
data["spring_0"] =
...
data["summer_0"] =
...
data["fall_0"] =
...
data["winter_0"] =
...
// MARRIAGE-SPECIFIC
if (isPennyMarriage)
{
Monitor.Log("DEBUG: Applying marriage-specific dialogue.", LogLevel.Alert);

  data["MarriageDialogue"] =
   ...
  data["MarriageDialogueWinter"] =
    ...

I also set up a bunch of debug.
bool isPenny = name.Equals("Data/Characters/Dialogue/Penny", StringComparison.OrdinalIgnoreCase);
bool isPennyMarriage = name.Equals("Data/Characters/Dialogue/PennyMarriage", StringComparison.OrdinalIgnoreCase);

if (isPenny || isPennyMarriage)
{
Monitor.Log($"DEBUG: AssetRequested โ†’ {name}", LogLevel.Alert);

 e.Edit(asset =>
 {
     var data = asset.AsDictionary<string, string>().Data;

     Monitor.Log($"DEBUG: Editing {name}. IsOccupied={State?.IsOccupied}", LogLevel.Alert);

     if (State == null || !State.IsOccupied)
     {
         Monitor.Log("DEBUG: Occupation inactive โ€” NOT replacing dialogue.", LogLevel.Alert);
         return;
     }

     Monitor.Log($"DEBUG: Replacing dialogue for {name}.", LogLevel.Alert);

It only sends these messages in the SMAPI log regarding the dialogue though 

DEBUG: Invalidated Penny dialogue cache because occupation began.
DEBUG: Invalidated Penny dialogue cache on save load.

Even though these are sent, Penny's dialogue doesn't change.
Furthermore I invalidated her basic dialogue
private void InvalidatePennyDialogue()
{
Helper.GameContent.InvalidateCache("Data/Characters/Dialogue/Penny");
Continued

#

Helper.GameContent.InvalidateCache("Data/Characters/Dialogue/PennyMarriage");

#

It seems like its firing the InvalidateCache and sending it in debug but it doesnt actually work.

#

And then none of the new dialogue actually appears

barren tapir
#

If you use ````````` You can put your message in code blocks
```cs

warped mesa
#

oh.

#

ill keep that in mind. point is thats the code, and none of it really seems to work. I just sort of need help. Penny is just a starting point. If I know how to do this from now on, making the other characters dialogue should be smooth sailing

barren tapir
warped mesa
#

okay hold on let me put it in code blocks

barren tapir
#

Thanks ๐Ÿ˜…

warped mesa
#

` // INDOOR
data["Indoor"] =
...

// SEASONAL
data["spring_0"] =
...
data["summer_0"] =
...
data["fall_0"] =
...
data["winter_0"] =
...
// MARRIAGE-SPECIFIC
if (isPennyMarriage)
{
Monitor.Log("DEBUG: Applying marriage-specific dialogue.", LogLevel.Alert);

  data["MarriageDialogue"] =
   ...
  data["MarriageDialogueWinter"] =
    ...
#

okay that didnt owrk

#

*work

barren tapir
#

It should be

TEXT
warped mesa
#

i might be a moron i dont use discord often for debugging ๐Ÿ˜„

barren tapir
#

TBF, it's a pain to do (at least on mobile, which I'm currently on ๐Ÿ˜…)

warped mesa
#

` // INDOOR
data["Indoor"] =
...

// SEASONAL
data["spring_0"] =
...
data["summer_0"] =
...
data["fall_0"] =
...
data["winter_0"] =
...
// MARRIAGE-SPECIFIC
if (isPennyMarriage)
{
Monitor.Log("DEBUG: Applying marriage-specific dialogue.", LogLevel.Alert);

  data["MarriageDialogue"] =
   ...
  data["MarriageDialogueWinter"] =
    ...

`

#

there we go

barren tapir
#

Yay!

warped mesa
#

Helper.GameContent.InvalidateCache("Data/Characters/Dialogue/Penny"); Continued Helper.GameContent.InvalidateCache("Data/Characters/Dialogue/PennyMarriage");

brittle pasture
#

it's probably better to post the full thing on somewhere like pastebin

barren tapir
#

I could be wrong, but would you really need to invalidate the cache if your editing the dialog like that?

warped mesa
#

the idea is that the dialogue will replace the vanilla dialogue for a while, not entirely replace it

barren tapir
#

But couldn't you use GSQs to limit how long they appear?

uncut viper
#

You do need to invalidate the cache if you want to undo your changes to an asset.

warped mesa
#

hmm

uncut viper
#

Not to make them in the first place, though, if your assetrequested handler is there from the time the game launches (bc theyll then be used on its initial load)

warped mesa
#

I'm just not really sure what's wrong with my code. I can't really figure it out. It's sending only two of the debug messages I programmed, and obviously Penny's dialogue doesn't change

uncut viper
#

But yeah like Selph says a full post somewhere like Pastebin would be best, real difficult to make sense of C# code in snippets in Discord like that

#

Or a link to a repo if you've got one

warped mesa
#

yeah hold on let me get it for you

uncut viper
#

That said, dialogue assets dont live in Data/

#

So you're not actually invalidating a real asset

barren tapir
uncut viper
#

Or editing the right asset if you're using that to check as well (hard to tell)

warped mesa
uncut viper
#

Same place as in your unpacked folder

#

So Characters/Dialogue/<name>

warped mesa
#

I see. So essentially the whole reason this isn't working is because I'm an idiot and put it in the wrong folder.

uncut viper
#

It could still be a different issue entirely! /lh But no I wouldnt call that idiocvy

barren tapir
uncut viper
#

Just a typo (and a common one at that)

warped mesa
#

alright let me see if that works. if it doesnt ill be back

barren tapir
#

Gonna make some dinner then try and fix the bug I encountered last night. Probably going to be back whenever I inevitably fail at fixing it and/or finding convos from last night.

warped mesa
#

Learned today you could marry Krobus.

#

by looking through files.

#

:D

uncut viper
#

You can roommate him

#

In code, its always marriage, just a special type of marriage

warped mesa
#

i see

uncut viper
#

But to the player its platonic roommates

void aspen
#

Would be pretty funny if krobus could gift farmer a shadow pendant and we could move to sewers with him

warped mesa
#

okay so it seems that after I fixed every instance of Data/Characters/Dialogue/Penny, like this, nothing changed.
bool isPenny = name.Equals("Content/Characters/Dialogue/Penny", StringComparison.OrdinalIgnoreCase); bool isPennyMarriage = name.Equals("Content/Characters/Dialogue/PennyMarriage", StringComparison.OrdinalIgnoreCase);

brittle pasture
#

remove Content/

#

all assets are relative to Content as root

warped mesa
#

Okay so i dont need to include it

#

thx ill try that

brittle pasture
#

also you probably want to use IsEquivalentTo instead of Equals

#

it probably doesn't matter in this case? but still

uncut viper
#

Also make sure youre checking NameWithoutLocale

#

just a general good practice default

warped mesa
#

Alright. So the log sent these messages
[StardewOccupied] DEBUG: AssetRequested โ†’ Characters/Dialogue/Penny [StardewOccupied] DEBUG: Editing Characters/Dialogue/Penny. IsOccupied=True [StardewOccupied] DEBUG: Replacing dialogue for Characters/Dialogue/Penny.
Which means my debug works fine. No change though :(

#

i didnt make any changes to the code apart from getting rid of the content in front.

#

again not really sure what happened here

brittle pasture
#

you can run patch export Characters/Dialogue/Penny in the console to confirm that your changes got applied by inspecting the file it generates

calm nebula
#

When is that code running?

warped mesa
#

Its supposed to run pretty much instantly upon loading a save

warped mesa
#

I mean it says this anyway [Content Patcher] Exported asset 'Characters/Dialogue/Penny' to 'C:\Program Files (x86)\Steam\steamapps\common\Stardew Valley\patch export\Characters_Dialogue_Penny.json'.

#

Forgive me, I'm fairly new to C#.

calm nebula
#

You dont need the .json

brittle pasture
#

no it doesn't

calm nebula
#

I ask because dialogue is pretty cache happy

warped mesa
#

Okay so I don't need the .json

#

But without it, none of the dialogue changes

#

is it possible that maybe the way i specify when the dialogue should be said in the code is wrong?
data["fall_0" for example?

#

or if (isPennyMarriage)

brittle pasture
#

does the json file show your changes

warped mesa
#

lemme check

#

Yes it does

#

but only five lines

#

oh wait

#

no im wrong

#

Yeah it has all my changes

#

All my lines are there. Weird.

brittle pasture
#

probably some caching thing then (not familiar with dialogue lol)

#

make sure to check Characters/Dialogue/PennyMarriage too with the same method

#

and go to bed and test again

warped mesa
#

its only 7:15...

calm nebula
#

So, question here. What are you trying to achieve?

#

Like, what are the conditions you want your dialogue to appear?

warped mesa
#

The mod adds a new state to the game. So essentially, it checks "Is Occupation true?" and if it is, character dialogue will be replaced with my own. Dialogue will then play during certain times of the year, obviously. IT will also check if the player is married to an NPC. If so, that NPC will have unique dialogue.
Certain dialogue will also only play outdoors, vice versa with inside of an NPC's home.
I'm planning on adding dialogue for if the player has children, but that will come later.

warped mesa
# brittle pasture make sure to check Characters/Dialogue/PennyMarriage too with the same method

So a couple things I noticed when doing this method. The debug "AssetRequested" stuff where it replaces stuff only happens when you talk to Penny, but it still shows the normal lines.
B: Upon trying to do the " patch export Characters/Dialogue/PennyMarriage method, it replies with this [Content Patcher] Couldn't load asset 'Characters/Dialogue/PennyMarriage' using a likely type (tried: System.Collections.Generic.Dictionary 2[[System.String, System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[System.String, System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]], System.Object). Try either specifying the type, or waiting until the game loads it before exporting it. See the SMAPI log for details.

brittle pasture
#

ok the correct name is MarriageDialoguePenny

warped mesa
#

gotcha okay. I'm an idiot, i should really look at the file names!

brittle pasture
#

see if fixing that in your code makes it work

#

(was on my phone so i didnt notice lol)

half tangle
# warped mesa its only 7:15...

in case the suggestion confused you, I'm pretty sure that Selph meant go to bed in game so that the game can reload things with the new day

strong kite
#

I genuinely don't know what I'm doing with this tile sheet ๐Ÿ˜ญ

#

-# I mean I do but that's not important heehee

hard fern
#

Mudkip

strong kite
#

Time to see if I can properly animate this

ornate locust
#

the hell

#

I know they are not recommended, but it's nice to be able to see what the depreciated aliases are, and it just isn't giving me the option to expand them

half tangle
#

all three expand/collapse for me

ornate locust
#

I just tried it in two browsers, why the actual hell...

half tangle
#

make sure you're clicking Expand and not elsewhere

ornate locust
#

Expand isn't there anymore- wait there, it came back

#

okay, computer acting weird false alarm

half tangle
#

lol, sometimes that'll happen

strong kite
#

Tileset animating across multiple tiles is pain ๐Ÿ˜ญ

ornate locust
#

Smashing my face against the refresh button until it loaded right worked I guess

half tangle
#

there's always ctrl+shift+r to force a reload of a page in case it's ever a caching issue

strong kite
warped mesa
#

Okay im back. so i changed it to marriagedialoguepenny, and I did the method of making sure its in the .json file thingy, meaning the patch has indeed been applied. But still, no change in dialogue.

#

THIS IS WHAT YOU GET PENNY

#

this bug is getting annoying i still dont know whats causing this.

strong kite
#

These mudkips take up so much space on the tilesheet

whole prism
#

hey there quic kquestion

#

do legendary fish require "!PLAYER_HAS_CAUGHT_FISH" inside their condition field?

#

so there isnt duplicate caught?

#

or is that already handled via other properties

brave fable
calm nebula
#

Other properties

brittle pasture
whole prism
#

oki y

#

ty

vernal crest
strong kite
vernal crest
warped mesa
#

okay everyone. I just don't know what's happening. i'v efixed a bunch of errors, and it all seems to be working, but Penny's dialogue just doesn't change. Does anyone know any fixes that might work?

#

Currently it looks a little something like this. The following is for the dialogue.
` // OUTDOOR
data["Outdoor"] =
...
// INDOOR
data["Indoor"] =
...

// SEASONAL
data["spring_0"] =
"...
data["summer_0"] =
...
data["fall_0"] =
...
data["winter_0"] =
...
// MARRIAGE-SPECIFIC
if (isPennyMarriage)
{
Monitor.Log("DEBUG: Applying marriage-specific dialogue.", LogLevel.Alert);
...
data["MarriageDialogue"] =
...
data["MarriageDialogueWinter"] =
...
}`

bool isPenny = name.Equals("Characters/Dialogue/Penny", StringComparison.OrdinalIgnoreCase); bool isPennyMarriage = name.Equals("Characters/Dialogue/MarriageDialoguePenny", StringComparison.OrdinalIgnoreCase);

private void InvalidatePennyDialogue() { Helper.GameContent.InvalidateCache("Characters/Dialogue/Penny"); Helper.GameContent.InvalidateCache("Characters/Dialogue/MarriageDialoguePenny")
This is to invalidate the real dialogue and replace it with my own.

#

I had earlier help, but none of it seems to be working. It just sort of plays the same dialogue, and doesn't replace Penny's with my own.

#

If anyone has any ideas on how to fix this, please feel free to ping me.

urban patrol
#

is there a reason you donโ€™t make a content patcher pack instead?

warped mesa
#

wdym

round timber
#

you can change npc dialogue without using C# (ie with a content pack for Content Patcher instead) but maybe there is a specific weird thing you are doing that required it to be C#?

#

so nic was asking if there was such a specific thing you were doing

warped mesa
#

I just put it into Visual Studio Insider. I thought that was what you were supposed to do.

hard fern
#

For making a C# mod, yeah, you'd use something like visual studio

round timber
#

Insider is... an AI thing?

hard fern
#

(i have no clue)

warped mesa
#

AI thing? It's a programming software.

#

point is i use visual studio

round timber
#

i couldnt tell based on a quick google which is why i asked but anyways

warped mesa
round timber
#

so like

#

what is the goal

#

what makes the modded dialogue pop up

hard fern
#

As in, it's not necessary to use C# unless you specifically need to use it

#

You can do just about anything with C# though

uncut viper
#

(Please do be aware though that if you ARE using any the AI integrated features of Visual Studio Insiders such as code generation or the like that that is against our rules here. Not saying you are or anything, just giving you a heads up just in case and so you don't attempt it as a solution.)

warped mesa
#

I'm not

#

That's just stupid

#

Most of the ai stuff is shit anyway

uncut viper
#

You can do dialogue changes completely with Content Patcher and no IDE at all though as Forsy says, but do you plan on adding any custom game mechanics or anything later on?

#

Because if not it would be a lot simpler to use CP instead

warped mesa
#

I do plan on doing so yes

#

I've already programmed two cutscenes

uncut viper
#

If you mean events like the game already has for like when you get high hearts with an NPC, that is also very easy in Content Patcher

warped mesa
#

Well, sort of.

#

It'd be a little spoilers

hard fern
#

What does "occupation" mean here? Like are you giving them jobs...? (Im curious)

warped mesa
#

Ah.

uncut viper
#

It's to do with the Gotoro war, right?

warped mesa
#

Well you've kinda forced my hand here

warped mesa
uncut viper
#

(I saw the post on the stardew mods subreddit)

warped mesa
#

Ah yes

#

yeah thats me

#

I'm a new dev to Stardew.

#

anyway, i want to get this dialogue working

#

i wasnt aware you could use content patcher like that

uncut viper
#

Content Patcher can edit near any asset you can find in your unpacked folder

#

It accounts for literally the majority of every mod for Stardew across the main modding sites

#

Something like 56% of all mods I think, around there

warped mesa
#

i believe the mod does use content patcher

#

sort of

#

Idk dude, I'm kinda winging it

uncut viper
#

If you have exported your dialogue asset and you do see the changes made, but the dialogue isn't showing, have you confirmed that the dialogue keys you are editing are actually the ones that are supposed to be used the day you are talking to the NPC in question?

#

i.e. not being overwritten by a higher priority dialogue key

warped mesa
#

All dialogue is supposed to be said on any day after Year 2 Spring 26 I believe

#

And the only dialogue Penny says is "Oh, I'm going into town!" you know the usual stuff

#

Though I'm not sure about being overwritten. How can i check that

uncut viper
#

This describes the priority of dialogue keys and when they're used.

#

spring_0 for example would be <season>_<dayOfMonth> which will only ever be shown in the first year.

warped mesa
#

spring_0 is the first year only?

uncut viper
#

Any <dayOfMonth> format key is first year only.

#

Though I actually don't think it'd be shown ever since there is no 0th day?

warped mesa
#

So essentially I've contradicted my own programming my telling my dialogue to ever appear

uncut viper
#

(I just took it from your screenshot up above)

warped mesa
#

the other problem i have is marriage dialogue. i dont have more than one save so i cant really confirm whether the other dialogue works, but i can confirm whether the marriage works and the answer to that is no. The marriage dialogue never appears. This is the code that sort of tells what the dialogue is.

#

Mind you, that debug does indeed fire

#

But she never says the dialogue

uncut viper
#

Where are you getting the MarriageDialogue and MarriageDialogueWinter keys from?

warped mesa
#

I kinda thought they were already defined. I guess they're not. should i change said keys

uncut viper
#

I'm not sure where you got that information from, but no, they do not exist

warped mesa
#

huh.

#

weird

#

I must be thinking of an older version or something

#

Anyway, is there an equivalent to said keys

torpid sparrow
#

How old /lh

uncut viper
#

I don't think they existed in past versions either. Regardless, the dialogue wiki page I linked you to explains how dialogue works and what the possible keys are as well as the specific asset for marriage dialogue.

warped mesa
#

okay thanks ill take a look :D

#

Alright looking at these keys, should each of these keys be applied to each line of dialogue?

#

actually, stupid question

proven spindle
#

It might be worth making a quick content patcher dialogue mod just to get the hang of formatting and resources first SDVpufferheart

proven spindle
# round timber Insider is... an AI thing?

Hey Vin just as a reference point for the junimos, visual studio insider is basically VS's open beta that people can sign up for to try out/test new features before updates get released. It's not specifically to do with AI, though general VS updates can include AI features, and people with insider basically just get earlier access to it

void aspen
#

Is it edible

round timber
#

huh

proven spindle
#

anything can be edible, the real question is whether it's milkable

torpid sparrow
#

Not here itโ€™s not

#

BAN SI

round timber
#

weโ€™re not doing the milk jokes anymore CGPufferflatBonk

proven spindle
#

sadge

torpid sparrow
#

BAN SI!!!

void aspen
#

Egg wine wins once again

inland rain
void aspen
inland rain
#

what I showed isn't, but you can set custom pockets for specific shirts or pants

#

there's two sets, the default which is in the config, and clothes specific which uses CP

#

Here's the config:

{
  "ModEnabled": true,
  "Alpha": 0.25,
  "DefaultPockets": {
    "DefaultShirt": {
      "ClothesType": "SHIRT",
      "HotKey": "None",
      "StartX": 16,
      "StartY": 36,
      "Width": 32,
      "Height": 24,
      "PocketSlots": 9,
      "PocketRows": 3
    },
    "DefaultRightPants": {
      "ClothesType": "PANTS",
      "HotKey": "None",
      "StartX": 16,
      "StartY": 60,
      "Width": 16,
      "Height": 20,
      "PocketSlots": 4,
      "PocketRows": 2
    },
    "DefaultLeftPants": {
      "ClothesType": "PANTS",
      "HotKey": "None",
      "StartX": 32,
      "StartY": 60,
      "Width": 16,
      "Height": 20,
      "PocketSlots": 4,
      "PocketRows": 2
    }
  }
}
void aspen
#

Hot key SDVpufferheart

void aspen
# inland rain Pockets

๐Ÿ˜ญ
Next time if you wanna post a video then you may wanna send a media link for it and not video itself

warped mesa
#

Alright gentlemen. This is a basic setup for marriage dialogue. Though on setup, I walk outside. Penny is reading outside my farmhouse (she's married to me in that save) and she says a normal line. Is everything normal here? I looked pretty closely

#

i feel like a moron constantly asking

void aspen
#

Don't be! This channel is made for asking

#

Id love to help but I'm as clueless

warped mesa
#

all i can really do is wait and hope

#

and probably sleep

brittle pasture
warped mesa
#

what patio line?

hard fern
#

The outdoor lines

#

Wait

hard fern
warped mesa
#

oh im a moron

#

christ

hard fern
#

You have outdoor ones, which i think only covers the porch?

warped mesa
#

Uh, according to the wiki, that covers the famr

#

*farm

#

like all of it

brittle pasture
#

just in case I'm talking about this line

warped mesa
#

so i should change the outdoor lines to patio

brittle pasture
#

or add a new one, your choice

#

the outdoor lines apply if she's just standing outside near the farmhouse entrance

warped mesa
#

I see okay

#

let me try it now

#

sigh... this is annoying

#

i was too lazy to find where she was so iw ent to sleep, shes in my kitche, says a line about being the first day of summer :DDDDDDD im dying

brittle pasture
#

no more embed fail

warped mesa
#

There has to be a better way of doing this. Itโ€™s clear writing dialogue inside visual studio isnt working

proven spindle
#

content patcher

#

!startmodding has some tutorials

ocean sailBOT
#

Making mods can be broadly divided into two categories:

Usually itโ€™s easier to start with making content packs, since you don't need to learn programming.

warped mesa
#

Right but I still need to use C# to make game mechanics.

proven spindle
#

You can do both

#

Many mods have two folders inside the mod folder, one that loads c# stuff and the other that loads cp stuff

warped mesa
#

Okay cool thanks

proven spindle
#

if you need the dialogue to happen after a certain event, you can trigger it using a mailflag (mailflags are in the modding wiki mail data page)

warped mesa
#

Gotcha

torpid sparrow
#

Beloved content patcher can do a lot

ornate locust
#

I have completed my first event in quite some time

#

and tested it

#

huzzah

#

I have two more short and simple ones before I have to deal with fancier stuff. like making a squirrel hop out of a bush.

#

I will cross that bridge when I get there

autumn temple
#

!comission

verbal glacier
#

!commissions

ocean sailBOT
autumn temple
#

Who to contact for map and buidlings and what does it usualy cost ๐Ÿ˜…

verbal glacier
#

you can use control/command f on the page linked there and use maps as a search term, i have no clue about costs

tribal dew
#

Farm Type Manager config editor is amazing SDVpufferheart thanks to it I managed to add stuff to my map without any coding experience: 1. quarry area 2. meadow growing seasonal flowers 3. wild meadow growing mushrooms after raining 4. small river basin spawning clay

hard fern
#

@west thunder it's not rlly that hard to make new Express for vanilla chara, so long as you don't change their original ones. Just put them at the bottom of the portrait sheet, and write whatever dialogue you want to go with it. The issue comes from when other people decide to use a portrait mod since obviously they won't have those portraits

#

I guess issues can also come up if someone uses some kind of character expansion that adds their own expressions in

#

But tbh, i wouldn't worry about those things since it's impossible to account for every possibility

torpid sparrow
#

can just be for players who dont play with any modded portraits (me)

hard fern
#

Even if you try and add built in compat there's always gonna be someone asking for compat with a mod you've never heard of

#

It's unending

west thunder
#

I had a feeling for, like, all of those.

#

If I were to do that, I know full well people will ask for versions of it in the style of a million different hyper-realistic mods.

azure star
#

Hi, is there anyone who knows of an existing (open source) mod that has created a new minigame using the IMinigame interface using SMAPI?

barren tapir
fossil osprey
calm nebula
#

So, what are you looking for?

#

The existing minigames in the game are pretty decent examples as is

#

IMinigame is....pretty manual

inland rain
#

what do you think would happen if I put a shirt in its own pocket?

azure star
inland rain
#

It's probably pretty poorly coded

#

it's not a minigame I think just an IClickableMenu

fossil osprey
inland rain
#

lol I'm afraid to try

azure star
# calm nebula So, what are you looking for?

I am inexperienced with modding stardew, so I am looking around to see what can be done.
I have some ideas that pertains to making a minigame, but I might also look into the IClickableMenu

calm nebula
#

If you look at the actual minigames in the game, those are pretty good examples here.

calm nebula
#

If you have questions, feel free to ask!

azure star
#

Thank you!

inland rain
#

I think you can theoretically put clothes with filled pockets inside pockets of clothes with pockets

#

but I draw the line on putting something in its own pocket... I still don't know what that would do lol

#

so, I force close the open pocket when you unequip an item with an open pocket

#

by default, every pants and shirts gets its own set of pockets based on the config file; you can change that so you have one set of pockets no matter what you are wearing

#

and can set specific pockets for specific shirts or pants

cyan jungle
#

do you need to make festival animations (ex. flower dance) or does the game just do it? is there anywhere where you'd define this?

verbal glacier
cyan jungle
#

how does it know :0

verbal glacier
#

it just knows that 44-47 are the dance sprites for male characters and plays the those sprites

cyan jungle
#

oh that's good to know cus idk if they are at that spot

verbal glacier
#

you just have to draw the sprites based on whichever gender your npc has, the link i send has the correct positions listed

cyan jungle
#

what about events like spirits eve? how does the game know to change the outfits?

verbal glacier
#

that's defined in appearances

cyan jungle
#

oh okie

verbal glacier
azure star
calm nebula
#

!reload

ocean sailBOT
#
How do I reload my changes while I'm still in game?
  • Content Patcher pack: enter patch reload <your_mod_id> in the SMAPI console window. This will reload and reapply all your patches (but won't recalculate the ConfigSchema or DynamicToken sections if you use them).
  • Translation files: enter reload_i18n in the SMAPI console window. If it's for a Content Patcher pack, also run patch reload afterwards.
  • C#: see the Visual Studio hot reload or Rider hot reload feature.
azure star
#

๐Ÿ˜

clever monolith
#

I'm not at pc so can't check game code but can someone tell me if marnie sells you the milk pail and shears only once? Or can you buy infinite number of milk pails from her?

outer viper
#

Has anyone ever modded new glasses into the game? I have the alignment right but I can see the player blink appearing over the glasses. Not sure how to disable it or if its a rendering layer issue.

cyan jungle
#

you know how when you pass npc sometimes they'll like- talk to each other in text bubbles? is there a way to control what they say, to who,and when?

#

also do any of you guys know of like a good heart event planner or a planning method? it seems so overwhelming and hard ;-;

warped mesa
#

Hey listen, whatever ya'll do, don't post your mods on curseforge.

cyan jungle
fossil osprey
warped mesa
#

Just REALLY don't. They're really scummy people

fossil osprey
#

we know dw ^^

strong kite
#

aaaa shooot okay, a chinese player has left a comment on my mod that they hope the chinese translation can be updated and aaaa I'd love to but I don't know chinese and there's no guarantees that the person who originally contributed the translations will come back, they were last on nexus in February this year

#

I sent them a message, though. Basically just saying the mod's been updated and if they want to come back to do translations they can but I'm not expecting it from them

#

And the person who contributed French translations hasn't been on since June 2024 (less than a month after they created their forums account which I find interesting) but I sent them the same message

round dock
round dock
#

I see. Yep, it's best to just inform them that it isn't your translation and be transparent.

#

This is also personally why I don't incorporate translations in my mod as a general rule.

strong kite
#

Yup! I feel like I made it clear that I'm not expecting anything from them, just giving them the information that it could be done and the option if they want to

#

At least I hope I made it clear, I worry a lot about this sort of thing

round dock
#

Yep, good call. I know the struggle of wanting mod users to have the best experience (including having the privilege of enjoying a translated mod in its updated version) but there's just some things we can't control.

fossil osprey
autumn temple
#

SDVpufferwaaah finalllyy sorry just want to say i made it!

round dock
#

Looks great! Congratulations! SDVpufferheart

strong kite
fossil osprey
#

It's alright dw ^^ You can ping me in my thread (link in my profile) or send me a DM whenever you need my help

tiny zealot
# strong kite aaaa shooot okay, a chinese player has left a comment on my mod that they hope t...

oh, i feel this. one of my mods ships a turkish translation that someone PRed at me a long time ago, but now it's out of date and they don't seem to be around anymore and at this point it's been too long so i can't reasonably contact them without sounding weirdly desperate. so it's just... out of date and i'm powerless to fix it. but also i can't remove it because that's just strictly worse

cyan jungle
#

you know how when you pass npc sometimes they'll like- talk to each other in text bubbles? is there a way to control what they say, to who,and when?

barren tapir
tiny zealot
#

you should be able to edit the actual text with content patcher, but you can't control how it triggers, or for whom, and you can't add new lines

cyan jungle
#

also, how do you do custom dialogue for when you gift npc a specific item

round timber
#

in your dialogue you add lines like this, AcceptGift_ItemID then whatever you want the dialogue to be

cyan jungle
#

ohhh i was missing the part where i update the i18n

#

how does it work for when, for example, alex is working out and you try to talk to him and then the game tells you not to bother him because he's working out?

tiny zealot
#

that's probably schedule dialogue

#

meaning, in the npc's schedule, the entry says "go to this location, play this animation, and show this text when spoken to (while at that location)"

#

sometimes that text is dialogue, and sometimes it's a % dialogue which hides the portrait box and is usually phrased like "haley is ignoring you" or similar

round dock
radiant ravine
#

Hey there, I am working on my first mod, and was curious if anyone had any good links to tutorials or breakdowns of how to create new farm animals?

So far I've been looking at how other mods that add new farm animals are set up, but I'd like to have a better grasp on what needs to be added and why?

jaunty shuttle
verbal glacier
round dock
verbal glacier
round dock
#

Wait, what are you disagreeing with?

verbal glacier
#

the % part

wanton pine
#

Is this clear and easy to understand?

  1. DO NOT assemble this mod and then redistribute it in an assembled state, edited or otherwise! Doing so is a violation of the asset usage permissions set by clefairykid and MissCoriel. You may, however, make edits to their assets for your own use. I personally encourage users of this mod who do not like the up-and-down motion of the motorbike's sprite to use image editing software to merge "DucatiEdits.png" down onto "horse.png" and then move half of the Ducati sprites up or down one pixel to eliminate the bounce, making sure that the file retains its name and location (and that there is only one "horse.png"); then set the custom mount kit's only configuration option to a checked box, if using "Generic Mod Config Menu (GMCM)" (https://www.nexusmods.com/stardewvalley/mods/5098), or find the mod's "config.json" file, found in the main folder of "[CP] Ducati Motorbike Custom Mount Kit" after the game has been run with it in the "Mods" folder, and change "false" to "true" (quotation marks excluded). Again, DO NOT distribute your edited "horse.png" out of respect for clefairykid.
round dock
verbal glacier
#

they were asking about alex right?

#

and his workout animation

round dock
#

I was agreeing with Ichorโ€™s example of that specific example of execution SBVLmaoDog

verbal glacier
#

ah

round dock
#

Aka the descriptive one, but youโ€™re right with Alexโ€™s lines. It indeed doesnโ€™t use % but that execution also works.

verbal glacier
#

yeah i just want to point them in the right direction cause the animationDescriptions are defined in a different place compared to schedule strings

round dock
#

Thatโ€™s completely fair nod

strong kite
#

oh god yeah my i18n file went from 390 lines (which is not including the 2 brackets at the start and end) to 1142 and counting

verbal glacier
#

sounds like you need more

strong kite
#

I mean I'm fine with adding more but that's just more work for translators heehee
I really wish I kept track of old entries that I edited cuz that means the current translations will need to be skimmed over to make sure they're still accurate Tiredkip

verbal glacier
verbal glacier
autumn temple
#

Any tips or tricks on making your own skull cavern or mines?

calm nebula
#

Try looking at Spacecore dungeons?

golden spire
#

That sounds like a video game in itself

wanton pine
#

And I am not up to adding a dozon or more conditional sprite edits rn.

golden spire
radiant ravine
verbal glacier
indigo yoke
#

anyone run into this issue before and know what might be causing it?
Projectiles from farmhands duplicate and don't start at the correct x/y.

Like...
1st project spawns at the farmhand but only travels a short way before vanishing
2nd projectile spawns farther away from the farmhand but covers the whole screen.

#

and both projectiles are real, if a monster is in the "sweet spot" were the 1st one despawns and the 2nd one spawns. it does double damage.

cyan jungle
wanton pine
#

how do I add descriptions to the requirements list on nexus?

cyan jungle
#

@round timber how does yours show up? mine just falls back to the regular loved dialogue

round dock
cyan jungle
round timber
#

whichever one adds the dialogue

round dock
#

Under requirements

round dock
round timber
#

so Osmar is the internal name of the NPC? what item are you testing with?

cyan jungle
cyan jungle
cyan jungle
round dock
#

%Omar is cooking eggs right now. Better not to disturb him.

cyan jungle
cyan jungle
#

@round timber tbh ive been having that issue for a while where i'd set a custom dialogue for stardrop tea and it just falls back to regular loved dialogue instead of the custom one

round timber
#

have you double checked youre actually including this json anywhere? it kind of sounds like the changes just arent being loaded into the game at all

blissful panther
# wanton pine how?

Just had a look on my end, and I'm... not sure you can enter arbitrary notes using the new file-to-file requirements.

brittle pasture
blissful panther
#

Wow, yeah, I had no idea they'd removed that functionality as part of it.

cyan jungle
brittle pasture
#

-# feel free to write a note of complaint to Nexus

ornate locust
#

I still want them to understand some files have OPTIONAL requirements and this should be a thing you can show on the requirement popup

round dock
#

I opened mine too andโ€ฆ eurgh

ornate locust
#

Requirements for specific files is nice, but it doesn't cover uses of optional requirements

blissful panther
#

Okay, they're looking at optional requirements for the new system at least.

half tangle
#

it'd be nice if their new system was able to cover the uses of the old system before they launched the new system...

round dock
#

I am not a fan of this new system. Sigh lol

uncut viper
#

Isn't that only if you're doing file specific requirements and not entire mod requirements?

cyan jungle
#

@round dock how would you write a dialogue with an npc that only happens when you reach a number of hearts with another npc

#

like in terms of json

wanton pine
#

Ducati Motorbike Custom Mount Kit

Adds a Ducati Motorbike with engine sounds, three motorcycle helmets, a bike shed with working garage door, and reskins the horse flute to match the Ducati. Intended to supplant the vanilla horse. Some simple and easy assembly (moving files between folders) required, out of respect for clefairykid and MissCoriel.

https://www.nexusmods.com/stardewvalley/mods/46549

Nexus Mods :: Stardew Valley

Adds a Ducati Motorbike with engine sounds, three motorcycle helmets, a bike shed with working garage door, and reskins the horse flute to match the Ducati. Intended to supplant the vanilla horse. Som

blissful panther
#

Ooh, even a mask showing what came from where? I like that!

severe cairn
#

Things are going so well ya'll won't believe it

calm nebula
#

Yeah, town is fun

wanton pine
wanton pine
#

It's not letting me unpublish it (use any commands) in the showcase

uncut viper
#

And showcasing doesn't handle attached media as far as I know

cyan jungle
#

@severe cairn in your mods do you have any special dialogue for specific items gifted

uncut viper
#

Just the resulting thumbnail from whatever link you put in it

wanton pine
#

boo! oh well.

severe cairn
#

ngl im very happy it crashed and burnt cus i changed a bunch of code relating to my file format and i took a lunch/dinner break and forgor everything i was doing

severe cairn
#

and a bunch of other dialogue stuff

cyan jungle
wanton pine
uncut viper
#

Because it's a Discord permissions issue that has not yet been worked out. It's broken.

wanton pine
#

Theeeen update it to say so? SDVpufferspring

cyan jungle
wanton pine
severe cairn
severe cairn
#

try removing the "Dialogue.Osmar." part

#

in the left string! not in the i18n or the right string

cyan jungle
#

@severe cairn i got this from CP on smapi: [Content Patcher] Ignored Osmar NPC > Include Osmar Data (from Data/Dialogue/OsmarDialogue.json) > Osmar's Dialogue: Entries > 'AcceptGift_(O)MissAnaira.VanillaCookingRecipes_StrawberryCheesecake' value is invalid: '{{i18n.Dialogue.Osmar.AcceptGift_(O)MissAnaira.VanillaCookingRecipes_StrawberryCheesecake}}' can't be used as a token because that token could not be found.

severe cairn
#

oh

#

the i18n is a period instead of colon

verbal glacier
#

you have i18n. which should be i18n:

deep cypress
#

Character design idea: Has anyone ever made a monster or character who faces only to the left and right? Like older games (80's-90's) would do this a lot, like faces left to move up and let, faces right to move down and right.

severe cairn
#

coding things fr ๐Ÿ˜” reminds me of when nothing would work and i was crying dying only to realize i misread a comma as a period in the tutorial T_T (it was my first time doing Real Coding so I didnt realize that periods shouldnt go there)