Line 97: |
Line 97: |
| |- | | |- |
| | <samp>{{t|dayOfWeek}}{{t|hearts}}_{{t|firstOrLaterYear}}</samp> | | | <samp>{{t|dayOfWeek}}{{t|hearts}}_{{t|firstOrLaterYear}}</samp> |
− | | Dialogue shown on the given [[#Days of week|day of week]] if you have at least {{t|hearts}} hearts with them, in the [[#First/later year|first/later year]]. The {{t|hearts}} will be checked in the order 10, 8, 6, 4, 2 (no other value will be recognised).<br />'''Bug:''' only shown if an equivalent <samp>{{t|dayOfWeek}}{{t|hearts}}</samp> key also exists.<br /><small>Example: <samp>Thu2_2: "Well, my Dad is back. Have you met him?#$b#I'm just glad he's okay."</samp></small>{{upcoming|1.6|Fixed bug.}} | + | | Dialogue shown on the given [[#Days of week|day of week]] if you have at least {{t|hearts}} hearts with them, in the [[#First/later year|first/later year]]. The {{t|hearts}} will be checked in the order 10, 8, 6, 4, 2 (no other value will be recognised).<br /><small>Example: <samp>Thu2_2: "Well, my Dad is back. Have you met him?#$b#I'm just glad he's okay."</samp></small> |
| |- | | |- |
| | <samp>{{t|dayOfWeek}}{{t|hearts}}</samp> | | | <samp>{{t|dayOfWeek}}{{t|hearts}}</samp> |
Line 103: |
Line 103: |
| |- | | |- |
| | <samp>{{t|dayOfWeek}}_{{t|firstOrLaterYear}}</samp> | | | <samp>{{t|dayOfWeek}}_{{t|firstOrLaterYear}}</samp> |
− | | Dialogue shown on the given [[#Days of week|day of week]] in the [[#First/later year|first/later year]].<br />'''Bug:''' only shown if an equivalent <samp>{{t|dayOfWeek}}</samp> key also exists.<br /><small>Example: <samp>Sat_1: "Dad's coming back soon!#$b#I hope he brings me some toys.$u"</samp></small>{{upcoming|1.6|Fixed bug.}} | + | | Dialogue shown on the given [[#Days of week|day of week]] in the [[#First/later year|first/later year]].<br /><small>Example: <samp>Sat_1: "Dad's coming back soon!#$b#I hope he brings me some toys.$u"</samp></small> |
| |- | | |- |
| | <samp>{{t|dayOfWeek}}</samp> | | | <samp>{{t|dayOfWeek}}</samp> |
Line 110: |
Line 110: |
| | | |
| ====Rain dialogue==== | | ====Rain dialogue==== |
− | <samp>Characters\Dialogue\rainy.xnb</samp> contains one dialogue entry per NPC. There's a roughly 50% chance they'll use this dialogue if one of the above didn't match, it's raining, and you're not married to or divorced from them. | + | <samp>Characters\Dialogue\rainy.xnb</samp> contains one dialogue entry per NPC. There's a roughly 50% chance they'll use this dialogue if a special or location dialogue doesn’t match, it's raining, and you're not married to or divorced from them. |
| | | |
| ====Marriage dialogue==== | | ====Marriage dialogue==== |
Line 208: |
Line 208: |
| ====Characters==== | | ====Characters==== |
| <samp>Strings\Characters.xnb</samp> contains miscellaneous dialogue, some of which is NPC-specific: | | <samp>Strings\Characters.xnb</samp> contains miscellaneous dialogue, some of which is NPC-specific: |
− |
| |
− | '''Note while this table describes the general pattern of these comments, they are actually quite hardcoded and you probably cannot add new keys.'''
| |
| | | |
| {| class="wikitable" | | {| class="wikitable" |
Line 216: |
Line 214: |
| ! description | | ! description |
| |- | | |- |
− | | <samp>MovieInvite_Invited_{{t|NPC}}</samp></br><samp>MovieInvite_Spouse_{{t|spouse}}</samp> | + | | <samp>MovieInvite_Spouse_{{t|NPC name}}</samp> |
− | | A custom response to being invited to see a movie. | + | | Shown when the NPC accepts a [[Movie Ticket|movie ticket]] when they're married to you. If missing, defaults to a <samp>MovieInvite_Invited_*</samp> key. |
| + | |- |
| + | | <samp>MovieInvite_Invited_{{t|NPC name}}</samp><br /><samp>MovieInvite_Invited_{{t|manner}}</samp><br /><samp>MovieInvite_Invited_{{t|socialAnxiety}}</samp><br /><samp>MovieInvite_Invited_{{t|optimism}}</samp><br /><samp>MovieInvite_Invited_{{t|age}}</samp><br /><samp>MovieInvite_Invited</samp> |
| + | | Shown when the NPC accepts a [[Movie Ticket|movie ticket]]. The NPC will use the first key that exists in the order listed here. |
| + | |
| + | The {{t|manner}}, {{t|socialAnxiety}}, and {{t|optimism}} values are those specified in the [[Modding:NPC data|NPC's equivalent data fields]]. The {{t|age}} value is one of <samp>Child</samp>, <samp>Teen</samp>, or <samp>Adult</samp>. |
| |- | | |- |
− | | <samp>Phone_{{t|NPC}}_Open</samp></br><samp>Phone_{{t|NPC}}_Open_Rare</samp></br><samp>Phone_{{t|NPC}}_Closed</samp></br><samp>Phone_{{t|NPC}}_Festival</samp></br><samp>Phone_{{t|NPC}}_Working</samp></br><samp>Phone_{{t|NPC}}_Working_OneDay</samp> | + | | <samp>Phone_*</samp> |
− | | Dialogue used when calling a storeowner NPC on the [[Telephone]]. | + | | Shown when calling a shop owner NPC on the [[telephone]]. These keys are hardcoded, so new keys with the same pattern will be ignored. |
| |} | | |} |
| | | |
Line 229: |
Line 232: |
| <samp>Strings\SpeechBubbles.xnb</samp> contains dialogue spoken by NPCs through speech bubbles when '''the player''' enters a given location. This is distinct from the <samp>{{t|location}}_Entry</samp> field in an NPC's <samp>Characters\Dialogue\*.xnb</samp> file, which is triggered when '''the NPC''' enters a given location. | | <samp>Strings\SpeechBubbles.xnb</samp> contains dialogue spoken by NPCs through speech bubbles when '''the player''' enters a given location. This is distinct from the <samp>{{t|location}}_Entry</samp> field in an NPC's <samp>Characters\Dialogue\*.xnb</samp> file, which is triggered when '''the NPC''' enters a given location. |
| | | |
− | Entries are in the following formats. All entries which are applicable make up a pool that the game randomly chooses from.
| + | These keys are hardcoded, so new keys with the same pattern will be ignored. |
− | | |
− | '''Note while this table describes the general pattern of these comments, they are actually quite hardcoded and you probably cannot add new keys.'''
| |
− | | |
− | {| class="wikitable"
| |
− | |-
| |
− | ! key format
| |
− | ! description
| |
− | |-
| |
− | | <samp>{{t|location}}_{{t|NPC}}_Spouse</samp>
| |
− | | Added to the pool when the given NPC is your spouse.
| |
− | |-
| |
− | | <samp>{{t|location}}_{{t|NPC}}_CloseFriends</samp>
| |
− | | Added to the pool when you have a certain friendship level with the NPC.
| |
− | |-
| |
− | | <samp>{{t|location}}_{{t|NPC}}_NotCloseFriends</samp>
| |
− | | Added to the pool when you are below a certain friendship point threshold with the NPC.
| |
− | |-
| |
− | | <samp>{{t|location}}_{{t|NPC}}_Raining</samp>
| |
− | | Added to the pool when it is raining. Can be suffixed with a number, in which case all entries will be added to the pool.
| |
− | |-
| |
− | | <samp>{{t|location}}_{{t|NPC}}_NotRaining</samp>
| |
− | | Added to the pool when it is not raining. Can be suffixed with a number, in which case all entries will be added to the pool.
| |
− | |-
| |
− | | <samp>{{t|location}}_{{t|NPC}}_Snowing</samp>
| |
− | | Added to the pool when it is raining. Can be suffixed with a number, in which case all entries will be added to the pool.
| |
− | |-
| |
− | | <samp>{{t|location}}_{{t|NPC}}_NotSnowing</samp>
| |
− | | Added to the pool when it is not raining. Can be suffixed with a number, in which case all entries will be added to the pool.
| |
− | |-
| |
− | | <samp>{{t|location}}_{{t|NPC}}_{{t|time}}</samp>
| |
− | | Added to the pool when it is {{t|time}}, which can be <samp>Morning</samp>, <samp>Afternoon</samp>, or <samp>Evening</samp>.
| |
− | |-
| |
− | | <samp>{{t|location}}_{{t|NPC}}_{{t|season}}</samp>
| |
− | | Added to the pool when it is the given season.
| |
− | |-
| |
− | | <samp>{{t|location}}_{{t|NPC}}_Not{{t|season}}</samp>
| |
− | | Added to the pool when it is not the given season.
| |
− | |-
| |
− | | <samp>{{t|location}}_{{t|NPC}}_Greeting</samp>
| |
− | | Always added to the pool. Can be suffixed with a number, in which case all entries will be added to the pool. Can also be suffixed with <samp>Male</samp> or <samp>Female</samp>, in which case only the one applicable to the player's gender will be added to the pool.
| |
− | |-
| |
− | | <samp>{{t|location}}_{{t|NPC}}_RareGreeting</samp>
| |
− | | Has a much lower chance of appearing than any other greeting.
| |
− | |}
| |
| | | |
| ====Strings from CS files==== | | ====Strings from CS files==== |
Line 280: |
Line 239: |
| The file has entries in the form <samp>"<key>": "dialogue string"</samp>, where the key is an arbitrary unique identifier. These must exactly match the key expected by the game, but the keys are just unique identifiers — even though most keys look like <samp>{{t|file name}}.{{t|line number}}</samp>, that's just the convention originally used to assign IDs and it has no meaning or effect (nor does it even necessarily match the current file name or line number). | | The file has entries in the form <samp>"<key>": "dialogue string"</samp>, where the key is an arbitrary unique identifier. These must exactly match the key expected by the game, but the keys are just unique identifiers — even though most keys look like <samp>{{t|file name}}.{{t|line number}}</samp>, that's just the convention originally used to assign IDs and it has no meaning or effect (nor does it even necessarily match the current file name or line number). |
| | | |
− | In most situations, if the game is unable to find a string for an NPC to say, it will default to <samp>NPC.cs.4061</samp>. (English version: "Hi.") | + | In most situations, if the game is unable to find a string for an NPC to say, it will default to <samp>NPC.cs.4061</samp> (English version: "Hi."). |
− | | |
− | '''Note while this table describes the general pattern of these comments, the _Stardrop key will not work in 1.5.6 except in Krobus's case. The other three keys can be patched to <samp>Strings/StringsFromCSFiles</samp> with the internal name of the NPC replacing <NPC> and will properly work.'''
| |
| | | |
| Some other useful NPC-specific strings stored here are as follows: | | Some other useful NPC-specific strings stored here are as follows: |
Line 291: |
Line 248: |
| ! description | | ! description |
| |- | | |- |
− | | <samp>{{t|NPC}}_AfterWedding</samp></br><samp>{{t|NPC}}_Engaged</samp></br><samp>{{t|NPC}}_EngagedRoommate</samp></br><samp>{{t|NPC}}_Stardrop</samp> | + | | <samp>{{t|NPC name}}_AfterWedding</samp> |
− | | Stored in <samp>Strings\StringsFromCSFiles.xnb</samp>. Currently only used for Krobus. Despite the name, <samp>AfterWedding</samp> is used when Krobus arrives at the farm. <samp>Stardrop</samp> is used when Krobus gifts you a [[Stardrop]].
| + | | Shown after marrying an NPC, when you talk to them on the farm on the same day. |
| + | |- |
| + | | <samp>{{t|NPC name}}_Engaged</samp></br><samp>{{t|NPC name}}_EngagedRoommate</samp> |
| + | | Shown after the NPC accepts an engagement item (e.g. [[Mermaid's Pendant|mermaid's pendant]] or [[Void Ghost Pendant|void ghost pendant]] for vanilla NPCs). |
| |} | | |} |
| | | |
Line 375: |
Line 335: |
| |- | | |- |
| | <samp>$0</samp> | | | <samp>$0</samp> |
− | | <samp>$k</samp> | + | | |
| | Use their neutral portrait. | | | Use their neutral portrait. |
| |- | | |- |
Line 591: |
Line 551: |
| | <samp>%book</samp> | | | <samp>%book</samp> |
| | The title of Elliott's book. | | | The title of Elliott's book. |
− | |-
| |
− | | <samp>%rival</samp>
| |
− | | {{upcoming|1.6.0|This token no longer exists.}} A random first name of the Farmer's gender from StringsFromCSFiles.xnb (keys Utility.cs.5499 through Utility.cs.5560). Will not match the Farmer's name.
| |
| |- | | |- |
| | <samp>%pet</samp> | | | <samp>%pet</samp> |