#making-mods-general

1 messages ยท Page 563 of 1

uncut viper
#

True

#

If you hate reused code you'd definitely like localtokens I think

autumn tide
#

THATS WHAT THEY'RE CALLED

#

completely forgot-

uncut viper
#

I'm p sure localtokens can replace every patch below your event and every included json with a single json and single include patch

#

But I'm not super well versed in them

#

Like I said though, not required

onyx panther
autumn tide
#

hmm, I know I have a few somewhere in my mod.. I could try and hunt down those examples if you'd like?

uncut viper
#

If you made a separate dynamic token called "ChosenColour" or soimething whose value changed depending on which event was currently marked seen, you'd have more dynamic tokens but could then use it for your editimages

#

(I know dynamic tokens aren't localtokens, I was just thinking about it more and think this way is probably simpler)

#

(I mean you could put the dynamic token into a localtoken I guess if you still wanted to keep the include)

onyx panther
#

hmmm idea

#

so the way this works is that the event adds a conversation topic for Abby dying her hair

#

this does mean I can have NPCs mention it until the next time she redyes her hair

autumn tide
#

I think you should also be able to turn the event into a trigger action too

uncut viper
#

I assumed there would eventually be an actual event in the event

onyx panther
#

no there won't be lol

#

it's just a start of day thing to change the hair color

uncut viper
#

Well then I think you should definitely use a trigger action instead lol

onyx panther
#

yeah?

autumn tide
#

I could try and draft one for you, if you'd like (I'm trying to procrastinate my own shit)

uncut viper
#

You would just be doing a repeatable DayStarted trigger action whose condition relies on not having the CT active

#

That then removes all possible hair colour mail flags (instead of event IDs) and then sends one using the AbbyHair token

#

Then all your HasSeenEvent checks would be HasFlag

#

It's a lot more conventional and flexible and also, maybe more importantly, your event version does not work if someone does not actually go to bed in the farmhouse

onyx panther
#

yeah ik

#

also conversation topics are technically the best option ig, but also, aaaaa not global

#

then again, ig the conversation topic could just be added for all players at day start anyway, technically making it global

#

and only get weird if not all players are always online

#

... or just make it host only

#

wait that doesn't mean non-hosts can get any custom dialogue

#

if I decide to do that that is

uncut viper
#

You can have CP check if the host has a specific mail flag

#

Then it's effectively global

#

You can also mark the trigger action as host only

onyx panther
#

so add the conversation topic for everyone, but only add the flag for the host?

uncut viper
#

If the trigger action itself is hostonly then only the host will get the CT anyway

#

since the AddConversationTopic command only works on the current player

#

If you're relying on CT dialogue though you can always split it into two trigger actions

#

One to set the CT (everyone), one to set the flags (host only)

onyx panther
#

yeah that would work

uncut viper
#

Or just leave it because if your When conditions are checking host anyway, it doesnt matter if anyone else gets the flags

onyx panther
#

I'll deal with all that after I shower though

#

feeling kinda gross, need to shave too

onyx panther
#

or conversation topics

#

or whatever

#

so host gets a flag (to make it global), everyone else gets a conversation topic (to get custom dialogue)

#

and I do want color specific conversation topics as well lol

autumn tide
#

hellooo making a mod that adds totems of all vanilla weather types, so far it works great but the TV channel report is incorrect when wind is triggered during during summer/winter, how can I edit the TV channel to fix this? specifically it falsely says that it'll be snowy

#

I could always just optionally edit the TV channel's image/strings when weather will be windy to show my own stuff hm..

#

sorry if I phrased that wrong, I am exhausted

brittle pasture
#

seems like it's a hardcoded branch in TV.getWeatherForecast

#

now I wonder if SVE's own wind totem patches that function...

autumn tide
#

aaah okay

brittle pasture
#

or you can patch the image/string yourself yeah

#

probably easier than harmony lol

autumn tide
#

oh for sure

#

hmm, would a normal when thing work though? considering it's something that prolly changes mid-day idk how frequently those get updated etc

#

WAIT

#

confused one sec

#

okay there we go

brittle pasture
#

the weather doesnt change until the next day

autumn tide
#

true, wait- is there an if for future weather at all?

floral stratus
#

Anybody well versed in Alternative Textures? The wiki isn't telling me what I need to know.

My partner designed wallpapers at 96 x 96 as this was the dimensions in the Stardew Wiki. They won't fit properly in a 256 wide sheet and I don't even know whether AT handles wide wallpapers. Cutting them down to 16x48 will destroy the designs. The framework I found that handled wide Wallpapers is too far out of date.

brittle pasture
#

(wiki images are blown up by 3x for visibility)

#

(you should only use the unpack as reference)

uncut viper
#

The weather doesn't change until the next day, but it's decided what it will be the day beforehand

autumn tide
#

mhm

brittle pasture
#

(otherwise I don't know the answer to your question sorry)

uncut viper
#

You could possibly do something with BETAS's WEATHER_FOR_TOMORROW gsq with a mail flag?

#

I don't know if it'd happen in time for CP though

autumn tide
#

aah I could! thanks buttons :)

#

anything to not touch harmony

uncut viper
#

You could actually use BETAS Harmony for this I think

autumn tide
#

..oh?

uncut viper
#

... I don't remember the BETAS Harmony format

autumn tide
#

I have no clue about betas harmony so

calm nebula
#

I'm surprised

autumn tide
#

ahhh that makes sense! the effects for summer/winter wind were already there

uncut viper
#
"Action": "EditData",
"Target": "Spiderbuttons.BETAS/HarmonyPatches",
"Entries": {
  "WindTextPatch": {
    "Id": "WindTextPatch",
    "Target": {
      "Type": "StardewValley.Objects.TV"
      "Method": "getWeatherForecast",
    },
    "PatchType": "Postfix",
    "ChangeResult": {
      "Operation": "ASSIGN",
      "Value": "Your custom forecast text here"
    },
    "Condition": "SEASON summer winter, Spiderbuttons.BETAS_WEATHER_FOR_TOMORROW Default Wind"
  }
}
autumn tide
#

holy shit tysm!!!

#

so it's like harmony but in CP?

uncut viper
#

(dont mind me editing that 50 billion times as I make small corrections)

#

Yeah pretty much. I don't recommend it in good conscience.

brittle pasture
#

...I'm confused, you'd just need to change those string in summer/winter right

autumn tide
#

and all the icons

uncut viper
#

You'd need to change it when you know the weather for tomorrow is Wind

#

but I don't know if CP would update before you'd be able to even know that

brittle pasture
#

I mean changing TV.cs.13190 to be something seasonally appropriate during summer

autumn tide
#

yeah

uncut viper
#

What if I make it snow though

#

With a snow totem (snowtem)

brittle pasture
#

then it's using 13180 or 13181

uncut viper
#

Why si it not already correct without any patches then

autumn tide
#

i am now lost

brittle pasture
#

I mentioned patching since it's technically the most correct way to switch to a different string (like, say, 13189) without changing 13190

#

but we can just change 13190

uncut viper
#

But we could use BETAS Harmony

#

Which is just the same as what you just said is the technically most correct way

fallow musk
#

What is the standard dev practise when you know your mod is gonna crash the save if its removed , my mod stores custom entities inside fish tanks and on mod removal it is expected to crash the save

i can give the console commands to gracefully uninstall the mod and reinstalling the mod should recover the safe. But I wanted to ask in general do other mods which face this problem take any different approach?

uncut viper
#

Emphasis on could not should

patent lanceBOT
uncut viper
brittle pasture
uncut viper
#

Or you find someway to remove the custom entity before save and restore them after day start

autumn tide
fallow musk
#

oh i see, i didnt knew spacecore had something for that, ill check that out, thanks

brittle pasture
#

all hail spacecore save serializer

uncut viper
#

Afaik, custom entities will crash you when sleeping even if you don't remove it, if not registered

calm nebula
#

Honest to God is wind actually different from snow now during winter

#

What is weather

#

What is weather in this crazy world

autumn tide
#

aahh makes sense

lucid iron
fallow musk
#

I didnt explain it properly
the fishes itself are Objects with an extra values in mod data, specific tags i want for my mod
another problem which stacks on top of this is that the fish tanks itself are assets from my mod. So when the mod is removed, the fish tank is also gone

#

I am basically trying to figure out if i can make a mod which allows player to give a rare chance to catch a 'giant' fish which has its own special tnaks

lucid iron
#

Oh if they aren't custom types (as in class SpecialThingy :Object) then u shouldn't have this issue

#

However error fish tank furniture crashing update loop is indeed a known bug to be fixed in .16

fallow musk
#

oh

lucid iron
#

This happens even with mundane cp added tanks and regular ol fish

burnt canyon
#

Helooooo everyonee!

lucid iron
#

You will have to warn users to remove all special tanks prior to uninstall

burnt canyon
#

I've got a new mod I want to share with you guys

fallow musk
#

ok i guess thats the only way. Thanks for the help

lucid iron
#

I think u are not in need of spacecore save serializer in this case

fallow musk
#

maybe ill just remove the special tank idea, its not the core point of the mod

#

and attempt to put the fishes in normal tanks

burnt canyon
#

Eh, nevermind then, I'll go somewhere else to show it

lucid iron
#

If u want i did actually make bigger fish mod

whole prism
#

Fishiiies

fallow musk
whole prism
#

Thankfully I dont use C# for modding

#

it..it..scares me

fallow musk
#

thanks for the refernce

lucid iron
fallow musk
#

oh i see some transpiler code, its above my skill level for now

#

ill try to use it tho

gray bear
#

29$ ...

fallow musk
#

thanks

lucid iron
#

That's just cus draw methods tend to be large tbh

#

And i prefer transpiler here over skipping prefix to avoid copying a ton of vanilla code

brittle pasture
#

tbh I dont fault draw skippers especially if you're going to redo most of the flow totally not justifying to myself

hard fern
#

Gravel or soggy

gaunt orbit
lucid iron
whole prism
#

Makes me super strong

#

(do not take my medical advice, side effects could be dangerous)

#

I think Google used to recommend that at one point (its summary thing)

#

at least when I asked, it recommended that

proven spindle
#

bread chat

onyx panther
autumn tide
#

godspeed!

onyx panther
#

looking at vanilla trigger actions rn

#

lol... josh

autumn tide
#

okay weather strings for TV does seem to update quick, at least every time a totem is used

void aspen
ornate drift
#

uhhh

how do you add a custom shop tile

torpid sparrow
#

Make shop then action shop shop name I think

#

[[Modding:Shops]]

ornate drift
#

how do i

make a shop though

torpid sparrow
#

I did it

ornate drift
#

oh ok

obtuse wigeon
#

is there a way I can patch the backwoods map to extend it to the left (in the negatives)? mod compat is already tossed through the window so that's not an issue and no vanilla events take place there (I think?), I would like to avoid patching the entire map and certainly want to avoid shipping the vanilla backwoods map itself. I tried using a negative X but it cried

iron ridge
#

iirc maps really dont play well with negatives

gaunt heath
#

You're going to explode everything, have a warp off to the left to your separate map instead

obtuse wigeon
#

Ye I was hoping I could shift the vanilla map over without including it but it looks like it may be an issue

gaunt heath
#

It will be several issues

#

You'll break everything that depends on coordinates, which is most things

obtuse wigeon
gaunt heath
#

Also all the events

obtuse wigeon
#

is there events in the backwoods?

autumn tide
#

uhmmm how would one insert a GSQ into a 'when'? wanna make a patch conditional on what the next day's weather will be, and BETAS has a GSQ for that

gaunt heath
#

And possibly the hard-coded sweet gem berry thing, if it's coordinate based

#

I don't remember if it is, lots of older stuff like that is janky

#

Oh BACKWOODS

autumn tide
#

yeah, abby's 14 heart is there!

gaunt heath
#

Sorry I read secret woods

#

And yes point still stands

obtuse wigeon
#

The backwoods is the only map I would attempt to do it with XD

#

I need to rethink the idea then, damn

gaunt heath
#

Abby's 14 heart and a bunch of custom heart events are there

#

Why not have a warp off to the left?

obtuse wigeon
uncut viper
autumn tide
#

aw crap

uncut viper
#

Not sure what the timing would be like on it anyway.

autumn tide
#

said patch is an edit image btw

#

anything I could do there?

obtuse wigeon
# gaunt heath Why not have a warp off to the left?

It's this whole area I wanted to put to the left to make it fit into an already existing space, while keeping surrounding maps rectangular so just moving the warp isn;t something I can do unfortunately and it's too small for a standalone map

gaunt heath
#

There are some pretty small standalone maps in base game, it looks big enough to me

autumn tide
#

hmm, idk your goal but if it's to add a new area, you could forgo the path and just have the top of the path warp you to the location you want?

brittle pasture
#

sve has a backwoods event and you will get bug reports if you go with your plan

gaunt heath
#

SVE edits the backwoods extensively, and RSV puts a map patch there

obtuse wigeon
gaunt heath
#

Anyway, I don't know if content patcher will even let you do that

#

I do think a warp would be your best bet

obtuse wigeon
#

I guess I'll go with it being a seperate map, just feels a bit small, ahh well, ty for the help!

gaunt heath
#

I mean, think about the size of the (pre1.6) bus stop map

#

There are plenty of small maps that don't feel weird

torpid sparrow
#

where are the spouse portraits located

brittle pasture
#

one of the new furniture sheets

obtuse wigeon
#

I could make it have part of the backwoods map inaccessible to make it fit onscreen without black bars

gaunt heath
#

junimo furniture

torpid sparrow
#

tyy

gaunt heath
torpid sparrow
#

thanks!!

obtuse wigeon
autumn tide
lucid iron
brittle pasture
#

you already got an answer

#

what condition do you want?

#

oh wait I see it

#

if this is the thing we discussed before, as I mentioned you only need to patch for current season

autumn tide
#

ahhh okay gotcha (somehow my brain did not register 'it doesn't work unless you have this' as 'just use this and it'll work' SDVkrobusgiggle )

#

oh yeah, but summer wind uses the default sunny UI so I can't replace that one without a condition

#

i'll grab that framework then LOL

brittle pasture
#

(as button mentioned it's also not guaranteed to work because of token reload timing)

#

(just something to keep in mind)

autumn tide
outer roost
#

I'm having trouble with my custom map not loading, but the warp does. And it said location wan't found or couldn't be loaded

#

pls hellSDVpufferwaaah

ornate trellis
#

!json

ocean sailBOT
#

JSON is a standard format for machine-readable text files that's used by Stardew Valley mods.

If you need help with a JSON file, you can upload it to smapi.io/json to see automatic validation and share the link here.

When making mods, it's recommended to edit your files in a text editor with JSON support, such as VS Code, Notepad++, or Sublime Text. These programs will check for syntax errors.

ornate trellis
#

use the link to put your code in there to share here so people can look at it

brittle pasture
#

you shouldn't use CustomLocations anymore, it's deprecated

#

I believe the actual issue is that locations created via CustomLocations have Custom_ prepended to the name

#

but yeah you should migrate to Data/Locations

near imp
#

Hold the phone youre adding rowboat girlyman? SDVpuffercoolest

outer roost
#

how did you knoww

brittle pasture
#

preferably with {{ModId}} in the location name to avoid collision

torpid sparrow
#

how do i move these down in the box?

#

i moved down the actual sprite in procreate but it didnt seem to do anything

hard fern
#

im pretty sure the game aligns the furniture based on like, what size you tell it to be

torpid sparrow
#

err like one pixel row lol

lucid iron
torpid sparrow
#

yes

lucid iron
#

Then yeah u should be able to just move it down

#

Go to the junimo furniture sheet and turn on grids (16x16) for ref

torpid sparrow
#

i didand i did the same thing

#

thinks

hard fern
#

one px lower seems too low to show much of a difference in the inventory menu ๐Ÿค”

torpid sparrow
#

oh wait not all of them are the same level

hard fern
#

wait

torpid sparrow
#

weird

#

oh my grid was off

#

i try again

uncut viper
torpid sparrow
#

teehee

#

is it possible to send furniture through mail?

calm nebula
#

Yes

sand remnant
#

I might try this soon to get my feet wet

torpid sparrow
uncut viper
#

Most things are Items.

#

The things that aren't you don't need to worry about

hallow prism
#

you can use (F) for furnitures

torpid sparrow
#

oh yea

#

ty

whole prism
#

question

#

if i make a new map, even small

#

do I require C#? or can I do this without C#

calm nebula
#

No c# needed

#

[[Modding:maps]]

whole prism
#

tyty

#

btw

#

do you know those events where meteroites fall down or the owl statue appears?

#

whats that called in the game? and is it possible with Content Patcher to add your own type of thing?

hard fern
#

night events, i think

whole prism
#

mmm okay

uncut viper
#

Can't do overnight events without the More Nightly Events framework

whole prism
#

ahh

#

oki ty

ornate trellis
#

i delightfully just found out you can use furniture as weapon projectiles and its goddang hilarious shooting beds

autumn tide
#

hellooo is there a way to just alter one dialog line in an event without touching the rest of the event? making a joke mod and I don't wanna create compat issues

hard fern
#

๐Ÿค” i think it can do that

autumn tide
#

oh what's that?

hard fern
#

hi claude wizard bed

autumn tide
#

hello!

hard fern
#

it should be on the content patcher docs

autumn tide
#

aah okay, thanks!

uncut viper
#

You can also just use Fields directly (i.e. instead of Entries)

#

Using the number of that field in the slash-delimited string as the key

ornate locust
#

get ready for some countin'

autumn tide
#

gotchaaaa (too tired to learn anything new rn so I'll prolly be back sometime tomorrow)

outer roost
#

hi I wonder how to make an NPC schedule? like for them walking around? Do I have to measure each step in the game myself, or is there a tool to help with this?

hard fern
ocean sailBOT
#
Creating a Custom 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:

tiny zealot
outer roost
#

thank youuuuSDVpufferheart

tiny zealot
#

you don't measure the steps, but you do specify "leave (or arrive*) at this time and go to this X,Y position on this map"
* arrive can cause errors in edge cases so i recommend using it sparingly

buoyant moon
#

well time to figure out how temporaryAnimatedSprite works

vernal crest
buoyant moon
#

Sure, wouldn't mind having that as a resource

vernal crest
#

Generator. It's very rough right now because I'm the only person who has used it haha

cobalt lance
#

Neat yoink

vernal crest
#

I also just realised that I haven't given people instructions on how to make a copy so they have their own instead of just editing mine, whoops

#

Happy to receive feedback if anyone has any

autumn tide
#

okay so the joke mod I was working on was [SPOILERS don't you dare read this unless you're offering code help] ||REDACTED CAUSE I GOT HELP AND I DO NOT TURST Y'ALL||, I was just doing this my editing all individual lines, but could I just use a text operation for this?

uncut viper
#

No, you would still need to edit individual lines if you're not using C#

autumn tide
#

aaah, okay

#

good to know I've not wasted my time at least

void aspen
#

That's some dedication

vernal crest
#

You could use TextOperations but you'd still need one entry per line anyway

autumn tide
#

ohhh

#

yeah that'd be even more annoying tbh

void aspen
#

I had some fun too today

buoyant moon
#

Is there any standard for what layers different things are on so I can correctly set sort tile Y on temporaryAnimatedSprite? For example just trying to test a basic event using 33 for that value had it behind the NPCs but 34 had it in front of them.

#

Oh, is it just that the Y tile of the sprite is their layer in general (and so two NPCs next to each other horizontally have equal value and will compete as I've observed before), but for TAS that can be overridden?

#

I just made the connection because the two NPCs are at Y 33 on the map

void aspen
# buoyant moon Is there any standard for what layers different things are on so I can correctly...

Do you mean this thing?

  • Back - Terrain, water, and basic features (like permanent paths).
  • Buildings - Placeholders for buildings (like the farmhouse). Any tiles placed on this layer will act like a wall unless the tile property has a "Passable" "T".
  • Paths - Flooring, paths, grass, and debris (like stones, weeds, and stumps from the 'paths' tilesheet) which can be removed by the player.
  • Front - Objects that are drawn on top of things behind them, like most trees. These objects will be drawn on top of the player if the player is North of them but behind the player if the player is south of them.
  • AlwaysFront - Objects that are always drawn on top of other layers as well as the player. This is typically used for foreground effects like foliage cover
buoyant moon
#

Not a map thing, an event sprite thing

#

The tile Y position to use in the layer depth calculation, which affects which sprite is drawn on top if two sprites overlap. The larger the number, the higher layer the sprite is on.

orchid glade
#

Hi guys, does anyone know where in Data the use of beach portrait/character textures happens? Or do I just mod it (adding a beach asset to someone who doesn't usually have one) by setting up an appearance under Data/Characters?

quick frost
#

Is there a tutorial yall know of for making a mod that adds new fish/things catchable in a crab pot?

void aspen
#

Some advanced stuff

hard fern
#

[[Modding:Fish_data]]

quick frost
#

Thank you!!

hard fern
gritty lynx
#

how do i convert a .txt file to a json file? :)

hard fern
#

set it up so they use those sprites when they go to island

hard fern
void aspen
#

As long as you have that setting on your pc!!

vernal crest
#

If you're on windows and have file extensions hidden, you need to enable those first otherwise you just end up with files called "content.json.txt"

void aspen
#

Sometimes it doesn't help so you gotta click some

gritty lynx
#

ahhh i see now, thank you!

void aspen
#

Go to your file explorer > View > Show file extensions

orchid glade
vernal crest
#

The _Beach portrait is hardcoded because it's from before 1.6. So it's not in data anywhere.

void aspen
#

Something to do there

hard fern
#

ah aba beat me to mentioning what i was going to say XD

calm nebula
#

You can use the data though

vernal crest
#

But you can just add a new entry to appearances to make your own beach thing happen anyway

calm nebula
#

There is a field for it

hard fern
#

the older characters don't use appearances for beach but your-

calm nebula
#

Jinx. SODA

void aspen
#

Good times when villagers didn't wear winter clothes

orchid glade
#

Great that's what I was suspecting, thanks Aba and Forsy

gritty lynx
#

im trying to make a content pack for custom NPC portraits where I add a new frame type following the OG author's tutorial, but my content pack deletes all of the original mod frames... is there anyone who could possibily give me a hand haha?

vernal crest
#

What framework is it?

tawdry hazel
#

guys I made a mod to replace my southern room but the old one is still showing up... do i have to demolish it and build again?

fierce vault
tawdry hazel
#

yep

fierce vault
#

You can get robin to get rid of that

tawdry hazel
#

yeah I know, but I wanted my map to overwrite it

#

i thought I needed to get it built beforehand but maybe not?

fierce vault
#

oh ok

gritty lynx
tawdry hazel
#

I got the original southern room map and did the slightest alterations + added a custom tilesheet over it. Smapi apparently had no issues loading it but it's not showing up. - ok figured it out

gritty lynx
#

okay well i got the og frames back but my custom one doesnt show </3

vernal crest
#

Okay let me rephrase. Which mod is the mod allowing you to add new frame types?

vernal crest
#

Can you link to it please?

gritty lynx
vernal crest
#

Wow, I totally misunderstood what you were asking about. I thought you meant portraits as in the picture you see when you talk to an NPC.

gritty lynx
#

oh haha, my bad, i should've explained better

vernal crest
#

All good! We got there

#

!json Okay can you please share your json?

ocean sailBOT
#

JSON is a standard format for machine-readable text files that's used by Stardew Valley mods.

If you need help with a JSON file, you can upload it to smapi.io/json to see automatic validation and share the link here.

When making mods, it's recommended to edit your files in a text editor with JSON support, such as VS Code, Notepad++, or Sublime Text. These programs will check for syntax errors.

vernal crest
#

Is that your entire file? It's missing closing brackets

#

Also, that Format field is way too low, it should be 2.8.0 at least.

gritty lynx
#

oh i see

#

i also have a smapi error log saying something about it, if that would help?

vernal crest
#

Neither thing should result in the original mod's frames from being deleted though. They'd just make your mod not work.

#

Yes, sharing a log could help, thanks

gritty lynx
vernal crest
#

Ah

#

Please let people know about things like that in future

gritty lynx
#

sure, my bad

vernal crest
#

Oops no that's my bad, you did

gritty lynx
ocean sailBOT
#

Log Info: SMAPI 4.5.2 with SDV 1.6.15 build 24356 on Windows 11 (10.0.26200.0), with 231 C# mods and 504 content packs.
Suggested fixes: One or more mods are out of date, consider updating them

vernal crest
#

I just missed seeing your message about it, sorry!

gritty lynx
#

no problem! SDVkrobusgiggle

vernal crest
#

Okay here's your error message:

Newtonsoft.Json.JsonReaderException: Can't parse JSON file at D:\SteamLibrary\steamapps\common\Stardew Valley\Mods\Mods\[CP] PortraitsCustom\manifest.json. This doesn't seem to be valid JSON.```
#

So the problem is that you have a broken manifest.json

gritty lynx
#

is there a way i can go about fixing that? sorry to trouble you :')

vernal crest
#

Yup, share your manifest the same way you did your content.json (with the validator website) and I will point out the error

vernal crest
#

You put your Dependencies field outside the rest of the manifest

#

You need to add a comma to the end of line 10 and then delete the { on line 11

gritty lynx
#

ahhh i see, thank you!

barren tapir
#

How would you write the following query?
RANDOM <config value>

vernal crest
#

"Condition": "RANDOM {{CT_RandomValue}}" if your config option is named CT_RandomValue

barren tapir
#

Thanks!

fierce vault
#

if I want to add an item and special dialogue based on friendship level during an event that happens at a specific time, should I just make two separate events for it, or is there a better way?

slow basin
#

finisjhed making my weird animal time to content patch it into the game

vernal crest
fierce vault
#

Uh, I haven't written the event yet, but I'm thinking event command?

#

I'm thinking I may add more than just one line about the gift, because it's significant

#

but I'm trying to figure out the technical aspects before writing it

#

I've got an idea right now, not a script

vernal crest
#

Then put the event commands for the lower friendship level into a dynamic token with no When condition and the event commands for the higher friendship level into the dynamic token with a When check for friendship. Then put the dynamic token itself into the event script.

fierce vault
#

Ok, so would each go into a separate version of the event then?

#

Like one event for higher hearts and the other for lower?

vernal crest
#

No, same event

#

Otherwise you wouldn't need the dynamic token

fierce vault
#

Oh, so would I be able to manage potentially extra lines added for the higher heart one then?

vernal crest
#

Yes just have a different i18n key for that

#

Or multiple speak commands with multiple i18n keys

fierce vault
#

oh, I haven't even i18n'd my first event yet (it's still unfinished). I'm still able to do that before transferring them to the i18n right?

vernal crest
#

Yes, though you will need to convert the text in the dynamic tokens to i18n manually rather than using the i18n converter

#

Here is a cut down example from Monster Sanctuary (I added extra commands into the DT to show you how):

"DynamicTokens": [
    {
        "Name": "DT_ArrangementMove",
        "Value": "advancedMove Krobus false 0 7 14 0 0 -1 2 50"
    },
    {
        "Name": "DT_ArrangementMove",
        "Value": "advancedMove Krobus false 0 8 14 0 0 -2 2 50/jump farmer/emote farmer 0",
        "When": {
            "HasMod": "LemurKat.CleanerSewer.CP"
        }
    },
],
"Changes": [
    {
        "LogName": "Event!",
        "Action": "EditData",
        "Target": "Data/Events/Sewer",
        "Entries": {
            "{{ModId}}_Arrangement/Friendship Krobus 1000/LocalMail {{ModId}}_KrobusLetter4": "
                spirits_eve/
                -100 -100/
                Krobus 17 13 0 Wizard 16 14 0 farmer -100 -100 2/
                skippable/
                // bla bla bla event
                {{DT_ArrangementMove}}/ -- This line here is the dynamic token, it will be replaced with the event commands from the DynamicTokens section/
                // bla bla bla event
                pause 500/
                end"
        }
    },
]
fierce vault
#

Oh thanks ๐Ÿ˜… Ok, I'll look through this and see if I can understand how to apply what shown

#

Oh, interesting!

#

Yeah, I would have struggled (more) with that if you hadn't shown the exampleSDVpuffersweats

#

So, even multiple dialogue lines could be used this way. Basically, I could just change out a chunk of the event if the player is at a higher heart level!

#

I thiiink I can probably apply this

#

Thank you!!

buoyant moon
#

I haven't needed to do something like that yet but good to keep in mind

fierce vault
#

Thanks (again) for taking the time to put this together Aba, I wasn't getting it before this

fierce vault
#

anyone knows why this only shows "you"?? question null #You can't!?/

#

I'm doing a quick question with one answer

cobalt lance
#

Does it not need (break)?

fierce vault
#

wait, let me check the wiki

#

Oh, yeah, i'll add that in and see if it fixes!

cobalt lance
#

It really confused me the first time I worked with quick question bcos i thought it meant like a line break or smth cuz im a complete novice

fierce vault
#

Yeah, I had to ask about that exact thing too ๐Ÿ˜…

#

and I forgot to add it anyway

cobalt lance
#

Me forgetting false in every advancedmove

brave fable
#

reminder that you can use the vanilla events as references by searching the unpacked content folder for keywords such as event commands

fierce vault
#

uh oh, (break) is in the dialogue now SDVpuffercry

#

Yes, I've definitely used them as a reference!

brave fable
#

if using vscode, open a new window and use Ctrl+K Ctrl+O to open the unpacked folder as a group, then Ctrl+Shift+F to search all files

#

no such hotkey in sublime, notepad++, etc but the option is still there under File

#

not even an alt key for it in sublime smh

haughty charm
#

Sublime has a shortcut key

#

At least mine does on mac

brave fable
#

oh i mean to open folder, not to search

haughty charm
#

AHHH

#

I misread, my bad!

brave fable
#

i miswrote, my bad ๐Ÿ™‚โ€โ†•๏ธ

fierce vault
#

yeah, my problem with opening folders is that it closes everything I have open before, and the same happens when I close the folder again. Aba addressed that question when I asked at one point, but I didn't have the energy to test it there and then ask follow up questions when it still wasn't working as intended most of the time. I am still not in a position to go down that rabbit hole right now unfortunately SDVpufferflat

brave fable
#

hence why i said to open in a new window hahah

fierce vault
#

oh wait

#

new window??

brave fable
#

opening a folder is the same in tiled, vscode, sublime, etc, where it's pretty much setting it up as the active project

brave fable
haughty charm
#

Question about wild trees...I don't want the qualified SeedItemID to drop when the tree is shaken, like never ever. But if I set the SeedOnShakeChance to 0, then nothing will drop when the tree is shaken.

How do I exclude the SeedItemId from dropping?

brave fable
#

or file > new window, of course

fierce vault
#

I can do new windows, but I don't think I've done that SDVpufferthinkblob

#

I'll have to try

#

thanks

#

It's amazing I still haven't finished my intro event after all this time SDVpufferfush

#

The end portion of it has definitely been harder to write

ornate drift
#

is this supposed to be a map property or

#

json coding?

haughty charm
#

You should have a corresponding ObjectData layer in Tiled that has an action to open the shop

iron ridge
#

thats a file

haughty charm
#

But yes, to pillow's point, the shop data is a different json

ornate drift
#

oh

#

er

is there like a template cuz there doesnt seem to be any

#

where am i supposed to add it? in my NPCs content json or an entirely different json?

haughty charm
ornate drift
#

i have the wiki with me its just idk if theres a base i can work off of

haughty charm
#

Any mod that adds a shop

ornate drift
#

ah

fierce vault
haughty charm
#

Yes - which is why I said normally ๐Ÿ˜„

fierce vault
#

I'm glad that's not normal!

brave fable
#

'a lot of things' is everything

#

much like how in c# you can just pile everything into ModEntry : Mod in ModEntry.cs, you can just fill up your content.json. but probably don't

haughty charm
#

Some people do put everything they possibly can into a content.json

fierce vault
#

brings me back to the days when I downloaded a 1.5 npc for reference ๐Ÿ˜”

#

That was scary

ornate drift
#

so its like
LogName: "Custom Manny Shop"
Action: EditData
Target: Data/{{ModId}}_MannyShop
?

#

wouldnt it make sense to be Load considering this is completely new

latent mauve
#

There isn't a way to make it so the exterior of a Farm Building has a light that turns on and off (so a day/night tile), is there?

#

(edited to be more specific that I mean a building from Data/Buildings and not a map tile)

fierce vault
#

I wish DTs could be offloaded to another json

haughty charm
ornate drift
#

and then Entries with the stuff i want?

haughty charm
#

yes

#

The entries would be the shop data as shown on the wiki

#

Starting with the shop you're adding - e.g. {{ModID}}_shopname

ornate drift
#

ignore the logname

#

i forgot to change that base

haughty charm
#

And target

ornate drift
#

right

#

what about entries

haughty charm
#

That's the right start

ornate drift
#

hooray

#

:3

#

ty

haughty charm
ornate drift
#

now uhhh

#

how about adding items?

haughty charm
#

There are a number of ways you can do that. I'd suggest looking at a mod that adds a shop to see how they do it.

wraith nest
#

(Just a quick heads up that I need this to work in C#, not content patcher)

Hey hey, just looking to see if someone knows a way to log a player characters real time location.

ornate drift
#

yeeeeeeeeeeah i cant find much from looking at others codes

lucid iron
ornate drift
#

the wiki?

#

i have that

lucid iron
#

it adds a pie with recipe Dokkan

ornate drift
#

ooo

#

does it include a shop

fierce vault
#

Mmm, modder's pie, just like mother used to make!

lucid iron
ornate drift
#

damn opening a shop is more complicated than i thought

fierce vault
#

It's Si, maker of the delicious modder's pie!

ornate drift
#

is this even needed at the top?

fierce vault
#

Hi, Si

proven spindle
# ornate drift does it include a shop

It's got an entry on how to add items to an existing shop, but more than that, it explains how to interpret resources like the modding wiki and the unpacked content folder, so it might still help you with your mod :)

lucid iron
ornate drift
#

oh

lucid iron
#

its what makes a file valid for content patcher include

proven spindle
#

Hi!

haughty charm
fierce vault
#

I like how you made a gimmick to go with your tutorial. It helps it have an more of an identity, imo!

proven spindle
#

Honestly I just woke up with the idea

#

I blame chu

#

I could have spent yesterday working on my mod but nooooo

fierce vault
#

You had to cook instead!

proven spindle
#

The tutorial suggestion gnawed its way into my brain and refused to leave till I gave it formSDVpufferchickcry

fierce vault
#

(well, bake, technically)

lucid iron
haughty charm
#

The items I want to drop (in their respective seasons), and only those

proven spindle
#

Well according to the game I cooked the pie rather than baked it so

fierce vault
#

lolol

brittle pasture
haughty charm
#

SeedDropItems

proven spindle
ornate drift
#

right

brittle pasture
#

yeah I think you want the former

haughty charm
#

Ahha

lucid iron
#

ah selph got it ty

fierce vault
#

I'll definitely have to read through it when I get the time

haughty charm
#

So I can leave SeedOnShakeChance at 0

#

THANK YOU

#

I confuddled myself

lucid iron
#

yea use the item query's chance to control how often

fierce vault
#

And, guys, if you find the pie helpful and delicious, download the file so you can endorse it!

haughty charm
proven spindle
#

I honestly haven't even been thinking of endorsements lol

haughty charm
#

I downloaded...waiting the requisite 15 min

#

sigh

proven spindle
#

...holy shit I have two endorsements

#

Noice

fierce vault
#

It's good to not get caught up in statics, but it's nice to see em' sometimes

ornate drift
#

ok so your mod targets gus's saloon

what am i supposed to target if its a completely custom shop

proven spindle
#

You target the custom shop. But since you're making the shop, you can also just fill out the fields inside the custom shop's entry directly without a separate patch. You can look at vanilla shop entries in the unpacked content folder to see what they look like, and the wiki tells you what type of data each field is looking for

ornate drift
#

does null just mean

nothing

proven spindle
#

Depends on the context, but generally yes. If a modding field asks for it, it's probably telling you to put the word 'null' there to indicate nothingness

brittle pasture
#

you can usually just not set a field if you don't need to
the unpack lists out every field by default, even unset ones

ornate drift
#

so it would be something like

#

actually why am i even adding these if theyre all null

proven spindle
#

For those fields that are null, check the wiki. If it says they're optional, as Selph said you can leave them out

ornate drift
#

Owner must be crucial then

brittle pasture
#

some fields also have default values if unset (see the PriceModifiersMode field in the screenshot). if you dont need to change them from the default you can also not set them

proven spindle
ornate drift
#

id like that yeah

#

my NPC woul just open his bakery from 900 to 400

proven spindle
#

In that case, yeah you'll probably need an owners field

ornate drift
#

im looking at a patch example rn

#

why is the owners name Any?

#

oh wait im stupid sk

#

am i supposed to put the modid of my NPC or the internal name

proven spindle
#

If you check the Names field under Owners in the shops modding wiki it explains it

ornate drift
#

mmmmmm maybe i should make the shop layout first instead of locking it behind an owner who doesnt have a schedule

#

lets ignore it for now

wet robin
#

Hi! Good afternoon! i just want to ask how I can add a door warp to my location because I'm not getting the interact cursor at all and nothing happens when I try to click it

ornate drift
#

you have to add both a json and a map property

wet robin
#

oh wait

ornate drift
#

yes i did use a template

#

๐Ÿฅ€

wet robin
#

no shame in that lol

#

oops, i do not have one, just the load json SDVpufferwaaah

ornate drift
# ornate drift

keep in mind lockerdoorwarp is ONLY for when your exterior door should be locked from, lets say, 9 AM to 4 PM

wet robin
#

its an npc house soSDVpufferparty

ornate drift
#

ok so the shop should look like this?

proven spindle
#

Curly bracket rather than square right after the modid_bakeryshop, otherwise yeah, you're on the right track

tame burrow
#

Is that an O or a 0

#

(should be O!)

#

(O)221

urban patrol
#

it can be easier to tell when your brackets are matching when you have proper indentation and formatting

tame burrow
#

Visual Studio Code or Visual Studio Codium recommended over Notepad++, it will scream at you when there's errored formatting and you can right click and auto format the document

lucid iron
#

there is a checking thing in notepad++ i think but u gotta press button

urban patrol
#

plugins>JSON viewer>format JSON

slow basin
tame burrow
#

I'm a bit stumped because this looks right

slow basin
#

๐Ÿ˜”

tame burrow
#

Does it work if you yeet deluxe produce? that's the only thing I see different from sheeps

slow basin
#

lemme try

#

nope

#

wait maybe im just dumb hold on

#

this may be user error because i cant seem to shear my adult sheep either ๐Ÿ™ƒ

#

ITS CAUS EMY INV WAS FULL

#

im dumb im sorry

tame burrow
#

LOL

#

no worries happens to the best of us

slow basin
#

=-= my stardew stopped being abele to open now cursed sheep creature

severe herald
#

Does somebody have the Haley portrait sheet with a transparent background?

slow basin
#

you can get it by unpacking the game files

#

!unpack

ocean sailBOT
#

Follow this guide to unpack the game's content files in order to see and explore how the game data is structured.
It's helpful when making your own mods, or just to learn about how the game works!

severe herald
#

I know, but I canโ€™t get to my pc rn

severe herald
#

Also game wise, does anybody know how to see which portraits are used in what situations?

slow basin
#

I dont wanna have to go to modded tech support

#

*packs my little stick bundle and wanders off towards modded tech support

ember lily
#

@tame burrow Timeout has been removed. You'll be able to do link once you reach Farmer level SDVpuffersalute

tame burrow
#

Thank you!! I got put in jail Devil_Joy

slow basin
#

man i cant even see modded tech support i havent used it that often ๐Ÿ˜ฉ
I have it followed and everything

#

i only see server suggestions and common bug solutions

#

got it

inner harbor
#

@royal stump So, these folks are playing multiplayer, and they have a bit of a slime infestation issue. I suspect this may be in part because the slimes are also breeding. Anyhow, here is the information from my server: Hi there, quick question? Is this normal? Am playing multi-player with my spouse and a friend, we also play with the It's Stardew Time mod to take it slow and more casual since my spouse has never played before. They keep multiplying... is there anything we can do?

#

Are we able to help them in any way? The clock is showing every minute, instead of every 10 minutes, which is likely compounding the issue. (Even if there is no way to help them, it's quite amusing!).

jaunty shuttle
royal stump
# inner harbor Are we able to help them in any way? The clock is showing every minute, instead ...

Short answer, probably not. I'd have to see the whole log to even guess well, though.

I guess It's Stardew Time might be duplicating SMAPI's start of day or time change events, which would cause a lot of mod compat issues, e.g. FTM possibly respawning things repeatedly. Breeding probably isn't the issue, though, because FTM disables it on all slimes it creates, so it'd have to at least be kicked off by vanilla slimes. SDVpufferthinkblob

torpid sparrow
#

poor first time player of a spouse HAHA just getting mauled by slimes

inner harbor
#

Luckily it's probably confined to one map

#

If they delete the ftm folder would that remove the slimes?

#

Ill add the ftm data does limit it to 10 spawns a day. If played normally!

royal stump
#

Removing the pack spawning them should prevent them reappearing, iirc

#

debug killnpc GreenSlime in the console might also work? I haven't checked whether that works on monsters
(but it'd probably recur if the pack spawns more)

#

looking at the code, I think debug killnpc "Green Slime" would work for that, though it'd affect locations like the woods and slime hutches

inner harbor
#

Thanks might be safest for them to remove the farm type manager file and just spawn in anything they meed from it.

buoyant moon
#

Is there a straightforward way to change an NPC's schedule after an event just for the rest of that day?

#

I see there's a MAIL <letter ID> command that can determine a schedule but I imagine that's only checked at the start of the day

tiny zealot
#

straightforward? no. in fact i advise against it
(schedules are fucky, since they are fully plotted out ahead of time by the NPC pathfinding code, and i think maybe some portion of it is checked or run at the end of the previous day)

buoyant moon
#

fair enough

torpid sparrow
#

I donโ€™t think it can โ€œchangeโ€ for the rest of the day unless the event is the first thing the person sees

tiny zealot
#

anything is possible with determined application of C# but here be dragons

torpid sparrow
#

And then you can do some fuckery to have that schedule change for that day

lucid iron
#

What's the intentions of schedule change?

buoyant moon
#

Right, was going to address that next. I want to effectively have two NPCs disappear for the rest of the day after seeing an event and figured locking them inside a building that you can no longer enter (thus my previous comment about locking a door after an event as well) would result in that

urban patrol
#

thatโ€™s actually way easier than changing the schedule lmao

#

set them invisible for the rest of the day

tiny zealot
#

oh just turn them invisible yeah, simple as

buoyant moon
#

I mean the schedule change is something else I wanted to do long term, just not right now

tiny zealot
#

changing an npc's schedule: eldritch horrors beyond human comprehension
banish an npc temporarily to the shadow realm: easy, there's a dedicated field on npc for it lol

buoyant moon
#

good to know

#

I saw the invisible part but hadn't tested it yet, part of the wording on the wiki threw me off

#

end invisible on the event data page has "(cannot be interacted with until the next day)." which for some reason read to me that they'd still be around and doing things but you just couldn't talk to them or give them gifts

tiny zealot
#

technically true! they are still there but fully invisible and not interactable

floral stream
#

npc schedules have confused me so many times when trying to work with them lol

tiny zealot
#

this is also how elliott's book tour works. he's actually in your house the whole time, just on the ethereal plane

buoyant moon
#

thanks, figured it could have been an XY problem but was still curious about the boundaries of what can be done with content patcher

#

I still have mucking about with schedules to do regardless, just not that dynamic

floral stream
#

are npc schedules for the current day youโ€™re playing loaded based on the day before or something? i had an issue with npcs walking through a passive festival tent, and i just added โ€œNoPathโ€ as a tile property for the area the day before to fix it, but i assume thereโ€™s a better way to do it

brittle pasture
#

yes, that's why when you install a new NPC mid save they just lay in bed (EDIT: see below)

floral stream
#

that makes sense

calm nebula
#

That's not actually it

#

Schedules are calculated day of

#

Passive festivals may be after

#

Npc spawning is not done until after schedules are calculated

#

The exact order of what happens when is fussy

brittle pasture
#

ah that makes sense
I even debugged a custom schedule some time ago without needing to sleep how did I forget

quasi dew
#

Alright, fam, I'm going crazy.
How do you add vanilla spouse-specific dialogue to an event that also allows for generic dialogue for modded spouses? (I want to have one event with different dialogues for the vanilla characters.)

In the past, I used {{SpouseName}} as a dynamic token set up as "_Sebastian" when married to Sebastian, for example, and "" when married to a non-vanilla spouse. When tested, that dialogue only shows the generic dialogue from the i18n file.

#

I don't want to have to add an additional version of every event that needs different dialogue bc of Elliott lol

brittle pasture
#

hmm your approach should work; you can post what you have so others can see if there are any issues

quasi dew
#

okay! I'll set it up again and send it over

calm nebula
#

Is this for i18n

#

Tbh I would personally do fallback keys

tiny zealot
#

also by "event" do you mean festival, because several of them have bizarre specific rules

#

in particular i am thinking of the flower dance, which is hardcoded not to check the _spouse dialogue keys for unknowable reasons

quasi dew
quasi dew
tiny zealot
#

CP's i18n token has a |defaultKey= parameter which lets you name a backup key to use if the one you asked for isn't found (double-check the name though, i'm shooting from the hip)

quasi dew
#

Okay, so the example for default keys is:
"{{i18n: missing-key |defaultKeys=missing-key-2, valid-key}}"

For my code, I think it would be:{{i18n:339660008_7_{{Spouse}}|defaultKeys=339660008_7_{{Spouse}}, 339660008_7}}}}
where 339660008_7 is the default dialogue?

#

asking because I've never made a token this long lol

whole raptor
#

I've always wondered what's the use case for default keys... since I can't think of a situation where something is missing intentionally SDVpufferthinkblob

quasi dew
#

It makes sense for my situation with modded spouses, since I'm only writing dialogue for vanilla ones. so 339660008_7_Sophia doesn't exist

quasi dew
whole raptor
#

Ah, I guess it could be an alternative to conditions/tokens

quasi dew
#

yeah, since my stupid dynamic token isn't working ๐Ÿ™

#

I'll see if I need to update anything on my end

buoyant moon
#

but that's just a guess, I haven't actually used it

quasi dew
#

okay, I think that makes sense

#

thank you! my brain is all wonky rn

tiny zealot
quasi dew
#

oof, SMAPI is not liking my code.
I've already written out a second event for modded spouses. :/ I'll just use that for now and try to update it in a later version

cobalt lance
#

i need... a statician... stat. or someone with a calculator. I'm using a conditional load for daily dialogue. Query a number range, return 1, change the daily dialogue. To randomize each day to have each of the 7 possible results, i have to make 7 edit data actions. Naturally, each one overwrites the previous... So it's not truly a 1/7 odds, but I don't know how to calculate it to get the odds as close to even as possible. Which is something that a player will never notice but I will

ornate locust
#

I think whatever you are doing to randomize this is...

#

erm

cobalt lance
#

not optimal??

ornate locust
#

Okay, I just think there's a better way to do it LOL

cobalt lance
#

tell me (pls btw :3)

calm nebula
#

There is the ||

ornate locust
#

That isn't out yet, is it

#

anyway the way people currently do it is with tokens

calm nebula
#

Yeah

#

Wow, gone before I finished submitting a report lol

cobalt lance
#

yeah i got an error LOL

ornate locust
#

anyway: "{{i18n:MV.Municipal.Dialogue.Daily.{{Random:{{Range: 1, 16}}}}}}"
This randomizes between MV.Municipal.Dialogue.Daily.1 - MV.Municipal.Dialogue.Daily.16

#

in the i18n

cobalt lance
#

oh wow

#

that's

#

welp. thanks guys :3 I'm goofy

merry river
ocean sailBOT
#

Log Info: SMAPI 4.5.1 with SDV 1.6.15 build 24356 on Windows 11 (10.0.26100.0), with 29 C# mods and 21 content packs.
Suggested fixes: One or more mods are out of date, consider updating them

calm nebula
#

One of your map properties is broken

latent mauve
#

If it's on loading your save, I would check the farm and farmhouse maps first

#

(most likely the farmhouse)

#

Common issues are things like invalid characters in the map property strings

merry river
#

my mod isn't touching those maps though SDVpufferthinkblob

latent mauve
#

Did the save you are loading use a different farm or farmhouse mod than what you currently have running?

#

(this is why I usually test on a minimal save when developing)

merry river
#

I will go through my custom maps tomorrow then and check which of the map properties may or may not be broken, thanks for translating this error message to me!

merry river
latent mauve
#

Did your mod list change?

ornate drift
#
   "Changes":
      [
{
    "LogName": "Open Bakery Shop",
    "Action": "EditData",
    "Target": "Data/Shop",
    "Entries": { "{{ModId}}_BakeryShop": {
    "Items": [
    {
    "ItemId": "[O]221",
    "Price": 250
                  },
                ],
              },
            },
          },
        ],
      ]```
#

what did i fuck up

lucid iron
#

If u indent it probably it'll probably become obvious

ornate drift
#

the hell is that

mellow laurel
#

first bracket needs to be curly, no?

ornate drift
#

does it? orrrr

#

oh ok

#

hooray thanks

#

now to actually get the shop to load ingame via a tiledata in Tiled....

#

Hm

brittle pasture
#

also qualified item ids use parentheses not brackets
ie. (O)221

ornate drift
#

oh ok

#

lemme fix that

ornate drift
lucid iron
#

[[Modding:Maps]]

lucid iron
#

See the tile actions section

void aspen
#

Wait I kinda forgot do paths layer light tiles work everywhere as intended?

#

I kinda remember manually typing their type and coords or something

ornate trellis
#

thats only if you dont want light type 4 afaik

void aspen
#

Oh I see

onyx panther
#

very specific dialogue change :3

near imp
#

let me guess, Caroline? SDVkrobusgiggle

onyx panther
#

yeah should be Caroline

#

I autocompleted that target and didn't notice the mistake lmao

autumn tide
#

the fact caroline is saying that with GREEN HAIR

onyx panther
#

fixed

autumn tide
#

hypocrite

onyx panther
#

gonna give her custom dialogue when Abby does green hair too

near imp
onyx panther
#

yeah you did lol

buoyant moon
onyx panther
buoyant moon
#

Going by a quick search Emily has this in her marriage dialogue:

"Neutral_0": "I hope you'll still like me when I grow old and my hair turns to a dull, faded steel.",
SDVpufferthinkblob

onyx panther
#

anyway, not doing Pierre dialogue lol

#

might do Sam and Seb dialogue

#

Maybe Emily for specifically blue

calm nebula
#

Her hair may still be natural

#

She could still go gray

buoyant moon
#

Yeah I'm not interpreting it as the blue being dyed, that can fit

onyx panther
#

ok, edited Abby's fall Sunday dialogue to replace the color response options if they happen to match Abby's current hair color

#

replaces bubblegum pink with neon green if she has pink hair already, black or blonde with brown if she has either color

buoyant moon
#

"Good_3": "I can't even remember the last time I dyed my hair... I swear, it never fades from this color...",
guess one of her marriage dialogues won't apply anymore

onyx panther
#

yeah, I'll prob edit it out

#

shame, it's a fun piece of dialogue

marsh reef
#

question, i have a really simple custom recipes mod for crafting right, am i able to add to that to be able to add a custom input and output for a furnace use? if not what do i need and how would i set that up?

brittle pasture
#

[[Modding:Machines]]

brittle pasture
#

you can add custom furnace recipes (make sure to use TargetField to insert a rule instead of overwriting everything)

marsh reef
#

๐Ÿค” ๐Ÿ™‚โ€โ†•๏ธ ๐Ÿ™‚โ€โ†•๏ธ

#

๐Ÿงโ€โ™‚๏ธ I have an easier time understanding looking at straight up code idk what im reading bro ;-;

near imp
#

try looking for a mod that does a similar thing?

#

it would have example code to look at

onyx panther
#

I've also been thinking of making a mod that adds NPCs of characters from a book I rly like

brittle pasture
void aspen
#

Looking at others people mods code is super useful for better understanding

#

So find a mod similar to your ideas and watch how they do it

marsh reef
ocean sailBOT
#

Follow this guide to unpack the game's content files in order to see and explore how the game data is structured.
It's helpful when making your own mods, or just to learn about how the game works!

brittle pasture
#

that's the "modify an existing machine" section and yes unpack

lucid iron
#

Do u have this done yet

brittle pasture
#

unpack also got mentioned in that section so pls read through it

#

I should remove the "this is optional" notice actually

#

"make sure to unpack the files. this is mandatory; if you don't do this your computer explodes"

calm nebula
#

Technically u dont have to

#

U can just visualize in vs

marsh reef
#

so then (BC)13 is furnace ๐Ÿค” ๐Ÿ™‚โ€โ†•๏ธ

#

further question, would i add it as a { contents }, before the { "Action ...? or elsewhere?

brittle pasture
#

you want to add it as a separate block in the Changes list

#

[ { /* crafting recipe stuff */ }, { /* machine recipe stuff */ } ]

#

also you should update your Format to the latest major Content Patcher version

marsh reef
marsh reef
brittle pasture
#

2.8.0

near imp
#

2.9.0? SDVpufferthink

lucid iron
#

Yes

#

But android players will come bother u

#

I think 2.1.0 is the latest cp version with notable migrations

uncut viper
#

(CP 2.9.0 is not compatible with Android bc Android SMAPI does not yet have the new EditImage patch mode Mask)

marsh reef
near imp
#

600 SDVpufferdead

marsh reef
#

oh wait

#

weird formatting, there's a few more

#

vs code search and replace a lot helped with most of it, deciding all the materials took forever though

marsh reef
brittle pasture
#

the furnace always take 1 coal per recipe, that can't be changed

#

(not without changing it for every other recipe)

marsh reef
void aspen
#

Isn't there a cooler furnace

marsh reef
#

than the kiln

void aspen
#

Oh

marsh reef
#

i like the furnace more so im favoring it in my lil recipe squabble

amber pelican
#

hey im looking for anyone that has experience with modding custom player animations, any help would be much appriciated!!

uncut viper
#

Custom player animations is the path of pain I think

amber pelican
#

lol i'm starting to realize that

near imp
#

Huh SDVpufferthinkblob Wasnt aware that was a thing we could do. I guess its a C# type of mod youre making? Havent seen any mods like that

uncut viper
#

Have you unpacked your files?

#

Anything is possible with C# (and this would require C#) but I honestly have no idea how one would go about it because people rarely ever do

amber pelican
#

yeah the funcionality would be through C# i guess, i'm not the most experienced modder tho

uncut viper
#

Just looking at the Farmer spritesheet is enough to persuade people against it usually

amber pelican
#

lol true, ive been trying for days so i figured id see if anyone here has even accomplished it before

calm nebula
#

Tbh usually you can chain together existing frames

near imp
#

compat might be a nightmare, people love their body replacement and sleeve mods SDVpuffergrimacing that being said if youre really determined compat might not factor in that much for you

calm nebula
#

What do you want?

#

Don't forget multiplayer, it's not autobroadcast iirc

near imp
#

(assuming you wanted to add new sprites that is)

uncut viper
#

@amber pelican Drug references of any kind are not permitted in this server.

amber pelican
#

oops my b

#

anyway, if anyone sees this and can help, pls dm me!!

calm nebula
#

You can still ask, just dummy out the context

uncut viper
#

Correct, as long as no rule breaking content is seen or written, you're still allowed to ask for help with the technicalities
(But be prepared for few people if any to have the knowledge in this particular area)

quaint vapor
#

is there a randomizer mod for 1.6?

uncut viper
quaint vapor
#

oh

#

sorry

uncut viper
#

No worries!

quaint vapor
#

i just saw mods-general so

long jungle
#

Hey guys. Is there a way to make a specific version of a mod as a dependency?

near imp
#

like specific and not minimum version?

long jungle
#

Yup

#

A "split version"

onyx panther
#

dialogue specific to blue hair... I'm not sure if I'm actually funny tbh

tiny zealot
opaque field
#

Happy to announce that Dessert Animals has received an update! Now with more fish, Gingerbread Goats, and Banana Pudding Ostriches ๐Ÿ˜„ https://www.nexusmods.com/stardewvalley/mods/43140

Nexus Mods :: Stardew Valley

This mod adds 14 new barn and coop animals, as well as 5 fish all themed after different desserts.

mental dragon
#

Question, hoping someone can point me in some direction. I have custom npc, custom outdoor and indoor maps. My npc works perfect outdoors (talks, gifts, schedule) but indoors they aren't "clickable". Their schedule/pathfinding works from the inside (house) to outside (town). I'm about to remake my indoor map, but figured I'd ask first incase I'm missing some parameter or something.

vast talon
#

hey guys may i see what schedule dialogue looked like from your npcs

mine always not working ๐Ÿ™

hard fern
#

!json

ocean sailBOT
#

JSON is a standard format for machine-readable text files that's used by Stardew Valley mods.

If you need help with a JSON file, you can upload it to smapi.io/json to see automatic validation and share the link here.

When making mods, it's recommended to edit your files in a text editor with JSON support, such as VS Code, Notepad++, or Sublime Text. These programs will check for syntax errors.

hard fern
#

you can share it with this

vast talon
lucid iron
#

please send entire json

vast talon
#

i have deleted it but it looked like this

on content json
Action: "Load"
Target: "Strings/schedules"
Fromfile: "assets/scheduledialogue.json

and

}
NPCname_Day_Time: "dialogue here"
{

#

its not working

#

guys pls help ๐Ÿ™

torpid sparrow
vast talon
torpid sparrow
#

yeah chat's not gonna work

#

wiki always chat never

iron ridge
#

!chatgptcode

ocean sailBOT
#

We don't recommend using generative AI (such as ChatGPT, Copilot, Claude, Grok, etc.) to write mods for Stardew Valley. There are a few reasons.

  • AI-generated content is not allowed to be posted in the server. If you need help with your code, you won't be able to post it.
  • Large Language Models aren't trained on enough Stardew-specific information to give reliable, accurate output. They also have no concept of what they don't know, and so cannot tell if they're incorrect. In short, they don't know if they're hallucinating a solution that simply feels like it makes sense or not.

This holds true for both SMAPI/C# mods, and mods for frameworks such as Content Patcher.

There's no shame in being new to Stardew modding, and you won't be talked down to for not knowing what you're doing. We strongly recommend consulting with other mod authors in the appropriate channels as a first step if you're completely stuck at step one.

vast talon
#

i just need the schedule dialogue guide the wiki is kinda outdated ๐Ÿ˜ญ

round dock
#

You are going to get concrete advice from the people here, regardless of your skill level in modding, than from a model that hallucinates

torpid sparrow
#

how is the wiki outdated

#

there's dialogue and there's schedule strings

#

which one are you referring to

vast talon
#

i tried this but it didnt work too from the wiki
1300 Town 47 87 0 "Strings\schedules\Abigail:marriage_Mon.001"

uncut viper
#

The official wiki is kept up to date. The modding wiki may or may not have some parts that have been overlooked.

pearl crater
#

hiya! i'm trying to verify some concession reactions. is there any mod that stocks all concessions in the theatre?
also would like help understanding the "scoring" described here:

royal stump
mental dragon
royal stump
# pearl crater hiya! i'm trying to verify some concession reactions. is there any mod that stoc...

I'm not aware of any, though it'd probably be a fairly quick CP mod to edit its shop entry in Data/Shops and make it stock more.

(wow this took longer than I thought SDVkrobusgiggle)
The scoring seems to use these rules, from highest to lowest priority:

  • if the entry with the NPC's name in Data/ConcessionTastes specifically names the item in the love/like/dislike list, it'll use that
    e.g. "LovedTags": ["Black Licorice"] means they love black licorice
  • if the item is in one of the "universal" entry lists (the one with "Name": "*") , they'll use that
  • if the item has no flavor tags for some reason, it's just "liked" by everyone
  • if it does have flavor tags, the first tag that the NPC has an opinion about will be used
    e.g. if the NPC has "DislikedTags": ["Candy"], and that's the item's first relevant tag, they'll dislike it
  • if NPC has no opinion about the item or any tags, it'll compare the tags to the universal entry
    e.g. people dislike "Joja" items if none of the above applies
  • if NONE of the above happens somehow, the item is just "liked"

And with all that said and done, it's +50/+25/+0 friendship as the wiki mentions.
I'm not sure why Modding:Movie theater data mentions weighing the tags, but as far as I can tell, it just picks the first result in that order.

#

to slightly tldr that, NPC name prefs > universal name prefs > items with no tags > NPC tag prefs > universal tag prefs

pearl crater
worn turret
#

Does anyone know if it's possible to add the smoke particle effect thing (literally just the smoke that billows from the chimney of the farmhouse or a cookout kit, but not the regular fire for some reason...) to a custom building? (It's more of a machine, but I think it technically counts as a building because Robin constructs it and it's called a building in the code)? I have a manchine that I'd like to have smoke billowing from when it's working, but after the modpocalypse it seems like at least for a while it wasn't possible anymore. Has it become possible as of late? I can't believe we'd just lose that functionality forever.

vast talon
uncut viper
worn turret
#

I'll check it out. Thanks for the tip.

vital forge
#

Forwarding it here

ornate locust
#

edit all of the clothing to match

#

If they just swapped to the female body more or less, you might be able to reuse those clothes, but some have a pronounced boob line to them

#

Maybe there's an easier way someone knows, but to my knowledge, that kind of thing is very manual

slow basin
#

should i worry about how to place the farmhouse and farmhand houses on specific points of the map to start before or after I finish my farm map im gonna work on

#

or does it auto do that

vital forge
hard fern
#

!unpack

ocean sailBOT
#

Follow this guide to unpack the game's content files in order to see and explore how the game data is structured.
It's helpful when making your own mods, or just to learn about how the game works!

vital forge
#

Ohh ty o7

long jungle
#

I rarely dabble with events.

But I need an event's name so that I can use it in a when condition.

#

I looked at Ridgeside Village's event.json

hard fern
#

Oops

#

I saw that XD

long jungle
#

Lol

#

I'm on mobile

#

I cannot xD

#

I'll just send the image lol

hard fern
#

The event id is gonna be the first

#

Before the first/

long jungle
#

75160264?

hard fern
#

Yep

long jungle
#

Thanks!

#

So if I do

"When": {
"HasSeenEvent|contains=75160264": "false",
},

The edit will only happen when the event has not happened yet, right?

#

Oh, it's working now. Thanks!

hard fern
#

(the exclamation mark reverses the condition)

long jungle
hard fern
#

Oh, yeah lol for some reason i had just assumed you were writing one

#

I need some sleep lol

#

It's past my bedtime

dreamy dew
#

Which minerals are excluded from the mineralsFound counter?

long jungle
brave fable
#

ahhhh chairtiles also uses the tilesheet image filename as a user-facing globally-unique identifier.

#

woe

waxen rampart
#

!npc

ocean sailBOT
#
Creating a Custom 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:

autumn tide
#

helloooo I'm going a little bit insane, i'm tryna replace the TV strings so that windy weather in summer shows up as windy and not snowy (as per default). my TV replacement thing works, but not the strings? here's my json: https://smapi.io/json/none/b141d7ea2cd3420082b109dfc09fca3b

i'm pretty sure the patch is being read, bc when I put an intentional keysmash in there, smapi does react to it

#

..hit enter too soon

#

ffs

#

there we go

vernal crest
#

Do you have to use OnTimeChange?

autumn tide
#

no clue

vernal crest
#

You don't actually have a When condition, so no you don't

#

Because nothing changes

#

I lied

#

It's at the top lol

autumn tide
#

wait I'm confused?

vernal crest
#

But neither of them are time-related so no, you don't need those OnTimeChange update rates

autumn tide
#

got it

vernal crest
#

I'm so used to looking for the When field at the bottom of patches that I missed seeing that yours were higher up

#

You should use patch summary and patch export to check if your patches are being read, by the way

near imp
#

-# (put my when conditions at the bottom pepenoted )

autumn tide
#

it's supposed to be for a weather totems mod

#

oh? how can I do that?

vernal crest
#

Are you asking how to do patch summaries?

autumn tide
#

yep

#

I am surprisingly bad at all this-

vernal crest
#

claude how have you never done a patch summary before???

autumn tide
#

idk SDVpufferwaaah

vernal crest
#

patch summary full <mod id>

autumn tide
#

thanks SDVpufferchickcry

near imp
#

yoinking that too

vernal crest
#

And then to see if your changes are in the asset, it's patch export strings/stringsfromcsfiles

autumn tide
#

okayyy

vernal crest
#

I notice someone is using ascii like me ;)

autumn tide
#

yup! I need all my stuff to be organized exactly how my audhd brain needs

vernal crest
#

Okay so firstly are you sure that those strings even play in summer?

autumn tide
#

the winter ones? they do, for both wind and snow

#

afaik wind is the same thing as snow from spring-fall to the game code-

vernal crest
#

So in vanilla, it plays a line saying "It's going to snow all day. Make sure you bundle up, folks!" in the middle of summer?

autumn tide
#

when I use my totems to make it snowy or windy, yeah

#

for wind:

#

my custom TV edit works but not the strings SDVpufferwaaah

vernal crest
#

So what is happening with the strings?

#

You said "it works with a keysmash". What does that mean?

autumn tide
#

oh I found an error in the patch summary!

#

when I make an intentional error in the file, smapi found it, so that ruled out the file not being included (totally haven't done that before hehhhh)

#

      [X]     | [ ]        | [ ]     | Early     | Strings > Assets/Code/Strings.json > EditData Strings/StringsFromCSFiles #2  // invalid input arguments (i18n_String.WindyWinter.1, 2, 3), token I18n doesn't allow more than 1 argument.

#

huh, weird..

#

looks like I do have the correct amount of brackets

vernal crest
#

Oh yeah of course because you're not using the random token

autumn tide
#

I am using range?

vernal crest
#

Yes but range is just to make your list of random values easier to write

autumn tide
#

ohhh, should I just use random 1,2,3 then?

vernal crest
#

Range is nice but not needed. Random is necessary.

autumn tide
#

got itttt okay

vernal crest
#

You can keep the range if you want to

vernal crest
#

Woo!

autumn tide
#

also mandatory bullying to have a sleep schedule ๐Ÿ’–

vernal crest
#

For future reference about OnTimeChange:

  1. It has no purpose unless your When condition is time based (not day, but time within a day)
  2. Just don't use it anyway, it's bad for performance and rarely worth it ^_^
autumn tide
#

got it!