| Article Stub
This article is a stub and is missing information. You can help Stardew Valley Wiki by expanding it!
This page is a collection of notes and hypotheses about how the game stores schedule data for NPCs. Schedule data determines the times and locations where the relevant NPC actor is, moves to, and the animations it displays meanwhile.
The schedule data is stored under /Content/Characters/schedules/ and its subfolders in character-specific XNB files.
Schedule data (as of v1.2.33) is located on this wiki on each character's Talk page (e.g., Abigail's Talk page).
- most of this section is unconfirmed and presumed to work similarly to the format of dialogue data.
"<preface>[heart level]_[date]_[year][suffix]": "String"
<preface>is an arbitrary key which identifies the occasion(s) the schedule is for.
[heart level]is the minimum heart level the player must have reached with the NPC for this schedule to be executed.
[date]is the numeric day of the month (like _28_), or the three-character weekday (like _Mon_).
[year]is _1_ for year one, or _2_ for any year after that.
[suffix]is any string further identifying the dialogue (like _inlaw_Abigail, for dialogue that only appears when you're married to Abigail).
If multiple dialogues are eligible, the game prioritizes by the following:
- marriage status;
- in-law status;
- day of month;
- heart level;
- day of week.
"<key>": "schedule event/schedule event/schedule event",
Schedule events are separated by slashes (/) and written in the following format:
<time> <map> <coord x y> <position> <animation> <Strings>
<time>is the time at which the schedule event begins, in military time (24 hour format, no colon)
[map]is the map on which the target location is
[coord x y]is the x and y coordinates of the target location, without a comma
[position]The direction the NPC actor shall face once reaching the target location.
[animation](optional): is the animation the NPC actor will execute at reaching the target location.
[Strings](optional): This is managed from strings/schedule/<NPC Name>. A specific format must be followed!
<time> the NPC begins to travel to the target location. Once there,
[animation] is executed until the next schedule event begins. There is possibly no limit to how many schedule events one schedule entry may contain.
[\"Strings\\schedule\\NPC:schedule.000\"] Where NPC is the chosen NPC file you are accessing in Strings/schedule. 'schedule' depends on the schedule itself.
If you are using "spring" then you must put spring.000, ect. Depending on how many times you have the schedule manage dialogue.
(If you have three "spring" scheduled dialogues.. each must be spring.000, spring.001, and spring.002).
Full Example Coding:
[1030 SeedShop 20 5 1 \"Strings\\schedules\\Abigail:Sun.000\"]
This means in Abigail's
<Sun> schedule, she will go to her mother's room at 1030 and access
[Sun.000] which reads
<"Sun.000": "We're hiding in here so we don't have to talk to anyone.",>