Changes

Jump to navigation Jump to search
m
Line 4: Line 4:     
==Raw data==
 
==Raw data==
Events are stored in <tt>Content\Data\Events\*.xnb</tt> (one file per location), which can be [[Modding:Editing XNB files#unpacking|unpacked to edit]]. Here's the raw data for events in [[Trailer|Pam's trailer]] as of {{version|1.5.1}} for reference:
+
Events are stored in <samp>Content\Data\Events\*.xnb</samp> (one file per location), which can be [[Modding:Editing XNB files#unpacking|unpacked to edit]]. Here's the raw data for events in [[Trailer|Pam's trailer]] as of {{version|1.5.1}} for reference:
    
{{collapse|Data|content=<syntaxhighlight lang="json">
 
{{collapse|Data|content=<syntaxhighlight lang="json">
Line 17: Line 17:  
Each event has a key which includes an event ID and any preconditions. Event IDs are a max of 10 digits, with a maximum value of 2147483647 (based on the game coding).  
 
Each event has a key which includes an event ID and any preconditions. Event IDs are a max of 10 digits, with a maximum value of 2147483647 (based on the game coding).  
   −
You may use any ID for testing '''BUT When you are ready to publish, you are recommended to use the four digit mod ID you get from Nexus (found in the mod page URL) as the prefix instead'''. ''Note that any other id (like last 4 digit of user id is not guarenteed to be unique across other mods)'' You can actually reserve an ID for your mod in Nexus by creating the page without clicking "Publish". Of course, this is not a rule, but a good convention to prevent mods from clashing. If uploading to Moddrop or another site instead, adjust according to the number of digits found in that site's IDs.
+
You may use any ID for testing '''BUT When you are ready to publish, you are recommended to use the four or five digit mod ID you get from Nexus (found in the mod page URL) as the prefix instead'''. ''Note that any other id (like last 4 digit of user id is not guarenteed to be unique across other mods)'' You can actually reserve an ID for your mod in Nexus by creating the page without clicking "Publish". Of course, this is not a rule, but a good convention to prevent mods from clashing. If uploading to Moddrop or another site instead, adjust according to the number of digits found in that site's IDs.
   −
Event preconditions include any number of the following arguments (separated by <tt>/</tt>). For example, Clint's Saloon heart event preconditions are <code>97/f Clint 750/t 1900 2300/d Tue Wed Thu Fri Sat Sun</code>, which (per the tables below) means ''event #97, requires 3 hearts with Clint, between 7pm and 11pm on Monday''.
+
Event preconditions include any number of the following arguments (separated by <samp>/</samp>). For example, Clint's Saloon heart event preconditions are <code>97/f Clint 750/t 1900 2300/d Tue Wed Thu Fri Sat Sun</code>, which (per the tables below) means ''event #97, requires 3 hearts with Clint, between 7pm and 11pm on Monday''.
    
Notes:
 
Notes:
 
* 'NPC name' means their internal English name, not the translatable display name.
 
* 'NPC name' means their internal English name, not the translatable display name.
* Most text is case-sensitive (e.g. <tt>Mon</tt> is not the same as <tt>mon</tt>).
+
* Most text is case-sensitive (''e.g.,'' <samp>Mon</samp> is not the same as <samp>mon</samp>).
* The game's logic for these codes is in <tt>GameLocation::checkEventPrecondition</tt>.
+
* The game's logic for these codes is in <samp>GameLocation::checkEventPrecondition</samp>.
    
===Context===
 
===Context===
Line 34: Line 34:  
! precondition
 
! precondition
 
|-
 
|-
| <tt>A {{t|dialogue ID}}</tt>
+
| <samp>A {{t|dialogue ID}}</samp>
| The special dialogue event with the given ID is ''not'' in progress. This can be a custom event ID, but these are the in-game IDs: <tt>cc_Begin</tt>, <tt>cc_Boulder</tt>, <tt>cc_Bridge</tt>, <tt>cc_Bus</tt>, <tt>cc_Complete</tt>, <tt>cc_Greenhouse</tt>, <tt>cc_Minecart</tt>, <tt>dumped_Girls</tt>, <tt>dumped_Guys</tt>, <tt>Introduction</tt>, <tt>joja_Begin</tt>, <tt>pamHouseUpgrade</tt>, <tt>pamHouseUpgradeAnonymous</tt>, <tt>secondChance_Girls</tt>, <tt>secondChance_Guys</tt>, <tt>shaneSaloon1</tt>, <tt>shaneSaloon2</tt>, <tt>willyCrabs</tt>.
+
| The special dialogue event with the given ID (including [[Modding:Dialogue#Conversation_topics|Conversation Topics]]) is '''not''' in progress. This can be a custom event ID, but these are the in-game IDs: <samp>cc_Begin</samp>, <samp>cc_Boulder</samp>, <samp>cc_Bridge</samp>, <samp>cc_Bus</samp>, <samp>cc_Complete</samp>, <samp>cc_Greenhouse</samp>, <samp>cc_Minecart</samp>, <samp>dumped_Girls</samp>, <samp>dumped_Guys</samp>, <samp>Introduction</samp>, <samp>joja_Begin</samp>, <samp>pamHouseUpgrade</samp>, <samp>pamHouseUpgradeAnonymous</samp>, <samp>secondChance_Girls</samp>, <samp>secondChance_Guys</samp>, <samp>shaneSaloon1</samp>, <samp>shaneSaloon2</samp>, <samp>willyCrabs</samp>.
 
|-
 
|-
| <tt>F</tt>
+
| <samp>F</samp>
| Today is ''not'' a festival day.
+
| Today is '''not''' a festival day.
 
|-
 
|-
| <tt>U {{t|day count}}</tt>
+
| <samp>U {{t|day count}}</samp>
 
| There are no festivals within the specified number of days from today.
 
| There are no festivals within the specified number of days from today.
 
|-
 
|-
| <tt>d {{t|day of week}}</tt>
+
| <samp>d {{t|day of week}}</samp>
| Today is ''not'' one of the specified days (may specify multiple days). Valid values: Mon, Tue, Wed, Thu, Fri, Sat, Sun.
+
| Today is '''not''' one of the specified days (may specify multiple days). Valid values: Mon, Tue, Wed, Thu, Fri, Sat, Sun.
 
|-
 
|-
| <tt>r {{t|number}}</tt>
+
| <samp>r {{t|number}}</samp>
| A random probability check, where {{t|number}} is the probability between 0 and 1 (e.g. 0.2 for 20% chance).
+
| A random probability check, where {{t|number}} is the probability between 0 and 1 (''e.g.,'' 0.2 for 20% chance).
 
|-
 
|-
| <tt>v {{t|name}}</tt>
+
| <samp>v {{t|name}}</samp>
 
| The specified NPC is not invisible (regardless of whether they're on-screen).
 
| The specified NPC is not invisible (regardless of whether they're on-screen).
 
|-
 
|-
| <tt>w {{t|weather}}</tt>
+
| <samp>w {{t|weather}}</samp>
 
| Current weather matches {{t|weather}}. Valid values: rainy, sunny.
 
| Current weather matches {{t|weather}}. Valid values: rainy, sunny.
 
|-
 
|-
| <tt>y {{t|year}}</tt>
+
| <samp>y {{t|year}}</samp>
 
| If {{t|year}} is 1, must be in the first year. Otherwise, year must be at least this value.
 
| If {{t|year}} is 1, must be in the first year. Otherwise, year must be at least this value.
 
|-
 
|-
| <tt>z {{t|season}}</tt>
+
| <samp>z {{t|season}}</samp>
| Current season is ''not'' {{t|season}}.
+
| Current season is '''not''' {{t|season}}.
 +
|-
 +
| <samp>N {{t|number}}</samp>
 +
| The players in total have found at least this many golden walnuts.
 
|}
 
|}
   Line 70: Line 73:  
! precondition
 
! precondition
 
|-
 
|-
| <tt>D {{t|name}}</tt>
+
| <samp>B</samp>
 +
| Current player has a double bed in the farmhouse if married; single bed if roommates (Krobus excluded).
 +
|-
 +
| <samp>D {{t|name}}</samp>
 
| Current player is dating the given NPC name.
 
| Current player is dating the given NPC name.
 
|-
 
|-
| <tt>J</tt>
+
| <samp>J</samp>
 
| Current player has finished the [[Joja Warehouse]].
 
| Current player has finished the [[Joja Warehouse]].
 
|-
 
|-
| <tt>L</tt>
+
| <samp>L</samp>
| Event is in the FarmHouse and the FarmHouse has been upgraded at least twice (has nursery but not necessarily cellar).
+
| Event is in the FarmHouse and the FarmHouse has been upgraded at least twice (has nursery but not necessarily cellar). Only works inside the FarmHouse, always false outside.
 
|-
 
|-
| <tt>M {{t|number}}</tt>
+
| <samp>M {{t|number}}</samp>
 
| Current player has at least this much money.
 
| Current player has at least this much money.
 
|-
 
|-
| <tt>O {{t|name}}</tt>
+
| <samp>O {{t|name}}</samp>
 
| Current player is married to that NPC.
 
| Current player is married to that NPC.
 
|-
 
|-
| <tt>S {{t|secret note ID}}</tt>
+
| <samp>S {{t|secret note ID}}</samp>
 
| Current player has seen the [[Secret Notes|Secret Note]] with the given ID.
 
| Current player has seen the [[Secret Notes|Secret Note]] with the given ID.
 
|-
 
|-
| <tt>a {{t|x}} {{t|y}}</tt>
+
| <samp>a {{t|x}} {{t|y}}</samp>
| Current player is on that tile position.
+
| Current player entered the map on that tile position. Note that since events are only checked for while entering a map, you can only use tiles that other maps warp to.
 
|-
 
|-
| <tt>b {{t|number}}</tt>
+
| <samp>b {{t|number}}</samp>
| Current player has reached the bottom floor of the [[Mines]] at least that many times.
+
| Current player has reached the bottom floor of the [[The Mines|Mines]] at least that many times.
 
|-
 
|-
| <tt>c {{t|number}}</tt>
+
| <samp>c {{t|number}}</samp>
 
| Current player has at least that many free inventory slots.
 
| Current player has at least that many free inventory slots.
 
|-
 
|-
| <tt>e {{t|event ID}}</tt>
+
| <samp>e {{t|event ID}}</samp>
 
| Current player has seen the specified event (may contain multiple event IDs).
 
| Current player has seen the specified event (may contain multiple event IDs).
 +
Usage:
 +
''/e <event ID>'' means has seen that event, then ''/e <event ID> <event ID>'' means has seen EITHER events, and ''/e <event ID>/e <event ID>'' means has seen BOTH events.
 
|-
 
|-
| <tt>f {{t|name}} {{t|number}}</tt>
+
| <samp>f {{t|name}} {{t|number}}</samp>
 
| Current player has at least {{t|number}} [[friendship|friendship points]] with the {{t|name}} NPC. Can specify multiple name and number pairs, in which case the player must meet all of them.
 
| Current player has at least {{t|number}} [[friendship|friendship points]] with the {{t|name}} NPC. Can specify multiple name and number pairs, in which case the player must meet all of them.
 
|-
 
|-
| <tt>g {{t|gender}}</tt>
+
| <samp>g {{t|gender}}</samp>
| Current player is the specified gender (<tt>male</tt> or <tt>female</tt>).
+
| Current player is the specified gender (<samp>male</samp> or <samp>female</samp>).
 
|-
 
|-
| <tt>h {{t|pet}}</tt>
+
| <samp>h {{t|pet}}</samp>
| Current player does not already have a pet, and their preference matches {{t|pet}} ("cat" or "dog").
+
| Current player does '''not''' already have a pet, and their preference matches {{t|pet}} ("cat" or "dog").
 
|-
 
|-
| <tt>i {{t|item ID}}</tt>
+
| <samp>i {{t|item ID}}</samp>
 
| Current player has specified item in their inventory.
 
| Current player has specified item in their inventory.
 
|-
 
|-
| <tt>j {{t|number}}</tt>
+
| <samp>j {{t|number}}</samp>
 
| Current player has played ''more'' than {{t|number}} days.
 
| Current player has played ''more'' than {{t|number}} days.
 
|-
 
|-
| <tt>k {{t|event ID}}</tt>
+
| <samp>k {{t|event ID}}</samp>
| Current player has ''not'' seen that event (may contain multiple event IDs).
+
| Current player has '''not''' seen that event (may contain multiple event IDs).
 
|-
 
|-
| <tt>l {{t|letter ID}}</tt>
+
| <samp>l {{t|letter ID}}</samp>
 
| Current player has '''not''' received that mail letter or non-mail flag.
 
| Current player has '''not''' received that mail letter or non-mail flag.
 
|-
 
|-
| <tt>m {{t|number}}</tt>
+
| <samp>m {{t|number}}</samp>
 
| Current player has earned at least this much money (regardless of how much they currently have).
 
| Current player has earned at least this much money (regardless of how much they currently have).
 
|-
 
|-
| <tt>n {{t|letter ID}}</tt>
+
| <samp>n {{t|letter ID}}</samp>
 
| Current player has received that mail letter or non-mail flag.
 
| Current player has received that mail letter or non-mail flag.
 
|-
 
|-
| <tt>o {{t|name}}</tt>
+
| <samp>o {{t|name}}</samp>
| Current player is ''not'' married to that NPC.
+
| Current player is '''not''' married to that NPC.
 
|-
 
|-
| <tt>p {{t|name}}</tt>
+
| <samp>p {{t|name}}</samp>
 
| Specified NPC is in the current player's location.
 
| Specified NPC is in the current player's location.
 
|-
 
|-
| <tt>q {{t|dialogue ID}}</tt>
+
| <samp>q {{t|dialogue ID}}</samp>
 
| Current player has chosen the given answer in a dialogue. May contain multiple dialogue IDs, in which case they must all have been selected.
 
| Current player has chosen the given answer in a dialogue. May contain multiple dialogue IDs, in which case they must all have been selected.
 
|-
 
|-
| <tt>s {{t|item ID}} {{t|number}}</tt>
+
| <samp>s {{t|item ID}} {{t|number}}</samp>
| Current player has shipped at least {{t|number}} of the specified item. Can specify multiple item and number pairs, in which case all of them must be met.
+
| Current player has shipped at least {{t|number}} of the specified item. Can specify multiple item and number pairs, in which case all of them must be met. This only works for the items tracked by the game for shipping stats (shown in the [[Shipping#Collection|shipping collections menu]]).
 
|-
 
|-
| <tt>t {{t|min time}} {{t|max time}}</tt>
+
| <samp>t {{t|min time}} {{t|max time}}</samp>
 
| Current time is between between the specified times. Can range from 600 to 2600.
 
| Current time is between between the specified times. Can range from 600 to 2600.
 
|-
 
|-
| <tt>u {{t|day of month}}</tt>
+
| <samp>u {{t|day of month}}</samp>
 
| Current day of month is one of the specified values (may contain multiple days).
 
| Current day of month is one of the specified values (may contain multiple days).
 
|-
 
|-
| <tt>x {{t|letter ID}}</tt>
+
| <samp>x {{t|letter ID}}</samp>
| For the current player: mark this event as seen, add the specified letter to tomorrow's mail, then return false (so that nothing further happens).
+
| For the current player: mark this event as seen, add the specified letter to tomorrow's mail, then return false (so that nothing further happens). Use the format "x letterid true" to send the letter immediately.
 
|}
 
|}
   Line 157: Line 165:  
! precondition
 
! precondition
 
|-
 
|-
| <tt>C</tt>
+
| <samp>C</samp>
| Host player has not finished the [[community center]], or has not seen the grand reopening yet.
+
| Host player has finished the [[Community Center]] or [[Joja Warehouse]].
 +
|-
 +
| <samp>X</samp>
 +
| Host player has not finished the [[Community Center]] or [[Joja Warehouse]].
 
|-
 
|-
| <tt>H</tt>
+
| <samp>H</samp>
 
| Current player is the host player.
 
| Current player is the host player.
 
|-
 
|-
| <tt>Hl {{t|letter ID}}</tt>
+
| <samp>Hl {{t|letter ID}}</samp>
 
| Host player has '''not''' received that mail letter or non-mail flag.
 
| Host player has '''not''' received that mail letter or non-mail flag.
 
|-
 
|-
| <tt>Hn {{t|letter ID}}</tt>
+
| <samp>Hn {{t|letter ID}}</samp>
 
| Host player has received that mail letter or non-mail flag.
 
| Host player has received that mail letter or non-mail flag.
 
|-
 
|-
| <tt>*l {{t|letter ID}}</tt>
+
| <samp>*l {{t|letter ID}}</samp>
 
| Host player ''and'' current player have '''not''' received that mail letter or non-mail flag.
 
| Host player ''and'' current player have '''not''' received that mail letter or non-mail flag.
 
|-
 
|-
| <tt>*n {{t|letter ID}}</tt>
+
| <samp>*n {{t|letter ID}}</samp>
 
| Host player ''and'' current player have received that mail letter or non-mail flag.
 
| Host player ''and'' current player have received that mail letter or non-mail flag.
 
|}
 
|}
Line 178: Line 189:  
==Event scripts==
 
==Event scripts==
 
===Basic format===
 
===Basic format===
Each event has a value which is the event script. This specifies what happens in the event — everything from lighting and music to NPC movement and dialogue. The script consists of multiple commands separated by <tt>/</tt> characters.
+
Each event has a value which is the event script. This specifies what happens in the event — everything from lighting and music to NPC movement and dialogue. The script consists of multiple commands separated by <samp>/</samp> characters.
    
Every script must start with three commands in this exact order:
 
Every script must start with three commands in this exact order:
Line 189: Line 200:  
|-
 
|-
 
| 0
 
| 0
| <tt>{{t|music ID}}</tt>
+
| <samp>{{t|music ID}}</samp>
| The background music or ambient background track to play. Can be changed later using <tt>playMusic <newmusic></tt>, or stopped entirely using <tt>stopMusic</tt>. This can also be <tt>none</tt> (which stops any existing music and uses the default ambient background noise for the location), or <tt>continue</tt> (which keeps playing the current background song).
+
| The background music or ambient background track to play. Can be changed later using <samp>playMusic <newmusic></samp>, or stopped entirely using <samp>stopMusic</samp>. This can also be <samp>none</samp> (which stops any existing music and uses the default ambient background noise for the location), or <samp>continue</samp> (which keeps playing the current background song). Refer to [https://docs.google.com/spreadsheets/d/1CpDrw23peQiq-C7F2FjYOMePaYe0Rc9BwQsj3h6sjyo/edit#gid=239695361 the great ID spreadsheet] for music choices.
 
|-
 
|-
 
| 1
 
| 1
| <tt>{{t|x}} {{t|y}}</tt>
+
| <samp>{{t|x}} {{t|y}}</samp>
 
| The tile coordinates the camera should center on at the start of the event.
 
| The tile coordinates the camera should center on at the start of the event.
 
|-
 
|-
 
| 2
 
| 2
| <tt>[{{t|character ID}} {{t|x}} {{t|y}} {{t|direction}}]+</tt>
+
| <samp>[{{t|character ID}} {{t|x}} {{t|y}} {{t|direction}}]+</samp>
| Initialises one or more characters' starting tile positions and [[#Directions|directions]]. The character ID can be <tt>farmer</tt> or an NPC name like <tt>Abigail</tt>.
+
| Initialises one or more characters' starting tile positions and [[#Directions|directions]]. The character ID can be <samp>farmer</samp> or an NPC name like <samp>Abigail</samp>.
 
|}
 
|}
   Line 208: Line 219:  
! description
 
! description
 
|-
 
|-
| <tt>addBigProp {{t|x}} {{t|y}} {{t|object ID}}</tt>
+
| <samp>addBigProp {{t|x}} {{t|y}} {{t|object ID}}</samp>
| Adds an object at the specified tile from the <tt>TileSheets\Craftables.png</tt> sprite sheet.
+
| Adds an object at the specified tile from the <samp>TileSheets\Craftables.png</samp> sprite sheet.
 
|-
 
|-
| <tt>addConversationTopic {{t|ID}} {{o|length}}</tt>
+
| <samp>addConversationTopic {{t|ID}} {{o|length}}</samp>
| Starts a [[Modding:Dialogue#Conversation topics|conversation topic]] with the given ID and day length (or 4 days if no length given).
+
| Starts a [[Modding:Dialogue#Conversation topics|conversation topic]] with the given ID and day length (or 4 days if no length given). Setting length as 0 will have the topic last only for the current day.
 
|-
 
|-
| <tt>addCookingRecipe {{t|recipe}}</tt>
+
| <samp>addCookingRecipe {{t|recipe}}</samp>
 
| Adds the specified cooking recipe to the player.
 
| Adds the specified cooking recipe to the player.
 
|-
 
|-
| <tt>addCraftingRecipe {{t|recipe}}</tt>
+
| <samp>addCraftingRecipe {{t|recipe}}</samp>
 
| Adds the specified crafting recipe to the player.
 
| Adds the specified crafting recipe to the player.
 
|-
 
|-
| <tt>addFloorProp {{t|prop index}} {{t|x}} {{t|y}} {{o|solid width}} {{o|solid height}} {{o|display height}}</tt>
+
| <samp>addFloorProp {{t|prop index}} {{t|x}} {{t|y}} {{o|solid width}} {{o|solid height}} {{o|display height}}</samp>
 
| Add a non-solid prop from the current festival texture. Default solid width/height is 1. Default display height is solid height.
 
| Add a non-solid prop from the current festival texture. Default solid width/height is 1. Default display height is solid height.
 
|-
 
|-
| <tt>addLantern {{t|row in texture}} {{t|x}} {{t|y}} {{t|light radius}}</tt>
+
| <samp>addLantern {{t|row in texture}} {{t|x}} {{t|y}} {{t|light radius}}</samp>
| Adds a glowing temporary sprite at the specified tile from the <tt>Maps\springobjects.png</tt> sprite sheet. A light radius of <tt>0</tt> just places the sprite.
+
| Adds a glowing temporary sprite at the specified tile from the <samp>Maps\springobjects.png</samp> sprite sheet. A light radius of <samp>0</samp> just places the sprite.
 
|-
 
|-
| <tt>addMailReceived {{t|letter ID}}</tt>
+
| <samp>addMailReceived {{t|letter ID}}</samp>
 
| Set a letter as received.
 
| Set a letter as received.
 
|-
 
|-
| <tt>addObject {{t|x}} {{t|y}} {{t|sprite index}} {{o|layer}} </tt>
+
| <samp>addObject {{t|x}} {{t|y}} {{t|sprite index}} {{o|layer}} </samp>
| Adds a temporary sprite at the specified tile from the <tt>Maps\springobjects.png</tt> sprite sheet.
+
| Adds a temporary sprite at the specified tile from the <samp>Maps\springobjects.png</samp> sprite sheet.
 
|-
 
|-
| <tt>addProp {{t|prop index}} {{t|x}} {{t|y}} {{o|solid width}} {{o|solid height}} {{o|display height}}</tt>
+
| <samp>addProp {{t|prop index}} {{t|x}} {{t|y}} {{o|solid width}} {{o|solid height}} {{o|display height}}</samp>
 
| Add a solid prop from the current festival texture. Default solid width/height is 1. Default display height is solid height.
 
| Add a solid prop from the current festival texture. Default solid width/height is 1. Default display height is solid height.
 
|-
 
|-
| <tt>addQuest {{t|quest ID}}</tt>
+
| <samp>addQuest {{t|quest ID}}</samp>
 
| Add the specified quest to the quest log.
 
| Add the specified quest to the quest log.
 
|-
 
|-
| <tt>addTemporaryActor {{t|character}} {{t|sprite width}} {{t|sprite height}} {{t|tile x}} {{t|tile y}} {{t|facing}} {{o|breather}} {{o|Character|Animal|Monster}} {{o|animal name}}</tt>
+
| <samp>addTemporaryActor {{t|character}} {{t|sprite width}} {{t|sprite height}} {{t|tile x}} {{t|tile y}} {{t|facing}} {{o|breather}} {{o|Character|Animal|Monster}} {{o|animal name}}</samp>
 
| Add a temporary actor. 'breather' is boolean. The category determines where the texture will be loaded from, default is Character. Animal name only applies to animal.
 
| Add a temporary actor. 'breather' is boolean. The category determines where the texture will be loaded from, default is Character. Animal name only applies to animal.
 
|-
 
|-
| <tt>addToTable {{t|x}} {{t|y}} {{t|object ID}}</tt>
+
| <samp>addToTable {{t|x}} {{t|y}} {{t|object ID}}</samp>
| Places on object on the furniture at a position. If the location is FarmHouse, then it will always be placed on the initial table.
+
| Places on object on the furniture at a position. UNLESS the location is FarmHouse, then it will always try to place an item onto the first piece of furniture, regardless if it's a table or not (and probably throw an error if there's no furniture.) It'll also actually replace the item on that piece of furniture if there was one previously. Not recommended for use in the farmhouse. May not be used by vanilla at all.
 
|-
 
|-
| <tt>addTool {{t|Sword|Wand}}</tt>
+
| <samp>addTool {{t|Sword|Wand}}</samp>
 
| Adds either a Battered Sword or Return Scepter to the player's inventory. The ''Battered Sword'' is unobtainable in vanilla and is incomplete and not implemented.
 
| Adds either a Battered Sword or Return Scepter to the player's inventory. The ''Battered Sword'' is unobtainable in vanilla and is incomplete and not implemented.
 
|-
 
|-
| <tt>advancedMove {{t|npc}} {{t|loop}} {{t|x y}}...</tt>
+
| <samp>advancedMove {{t|actor}} {{t|loop}} {{t|x y}}... OR {{t|direction duration}}</samp>
| Set multiple movements for an NPC.  You can set True to have NPC walk the path continuously. Example: <tt>/advancedMove Robin false 0 3 2 0 0 2 -2 0 0 -2 2 0/</tt>
+
| Set multiple movements for an actor.  You can set True to have the actor walk the path continuously. Example: <code>/advancedMove Robin false 0 3 2 0 0 2 -2 0 0 -2 2 0/</code>
 +
 
 +
To make the actor move along the x axis (left/right), use the number of tiles to move and 0. For example, <code>-3 0</code> will cause the actor to walk three tiles to the left while facing left. <code>2 0</code> will cause the actor to walk two tiles to the right while facing right.
 +
 
 +
To make the actor move along the y axis (up/down), use 0 and the number of tiles to move. For example, <code>0 1</code> will cause the actor to walk one tile down while facing down. <code>0 -5</code> will cause the actor to walk five tiles up while facing up.
 +
 
 +
To make an actor pause, use the direction to face and the number of milliseconds to pause. 1 is right, 2 is down, 3 is left, and 4 is up. The reason 4 is up and not 0 is so that advancedMove can tell the difference between a pause command and a move up/down command.
 +
 
 +
The code can tell the difference between a move command and a pause command because a move command must have 0 for either x or y. A pause command must have non-zero numbers for both numbers in the pair.
 +
 
 +
Example: <code>/advancedMove Clint true 4 0 2 5000 -4 0 1 3000/</code> Clint will have continuous movement moving 4 tiles to the right, facing down upon arriving, waiting for 5 seconds, then moving 4 tiles to the left, facing right upon arriving, then waiting for 3 seconds, then loops because the loop was set to true(see above).
 +
 
 +
Example: <code>/advancedMove Pam true 5 0 0 3 3 5000 -6 0 0 -4/</code> Pam first moves 5 tiles to the right, then directly moves 3 tiles downward, faces the to the left upon arriving then waits 5 seconds before moving 6 tiles to the left then moves up 4 tiles directly.
 
|-
 
|-
| <tt>ambientLight {{t|r}} {{t|g}} {{t|b}}</tt>
+
| <samp>ambientLight {{t|r}} {{t|g}} {{t|b}}</samp>
| Modifies the ambient light level, with RGB values from 0 to 255. Note that it works by ''removing'' colors from the existing light ambience, so <tt>ambientLight 1 80 80</tt> would reduce green and blue and leave the light with a reddish hue.
+
| Modifies the ambient light level, with RGB values from 0 to 255.
 
|-
 
|-
| <tt>animalNaming</tt>
+
| <samp>animalNaming</samp>
 
| Show the animal naming menu if no other menu is open. Uses the current location as Coop. Appears to only work for 'hatched' animals.
 
| Show the animal naming menu if no other menu is open. Uses the current location as Coop. Appears to only work for 'hatched' animals.
 
|-
 
|-
| <tt>animate {{t|actor}} {{t|flip}} {{t|loop}} {{t|frame duration}} {{t|frames...}}</tt>
+
| <samp>animate {{t|actor}} {{t|flip}} {{t|loop}} {{t|frame duration}} {{t|frames...}}</samp>
| Animate a named actor, using one or more {{t|frames}} from their sprite sheet, for {{t|frame duration}} milliseconds per frame. {{t|frames}} are indexed numerically, based on 16x32 peices of the image. This index increases as you go from left to right, starting from 0. {{t|flip}} indicates whether to flip the sprites along the Y axis; {{t|loop}} indicates whether to repeat the animation until <tt>stopAnimation</tt> is used.
+
| Animate a named actor, using one or more {{t|frames}} from their sprite sheet, for {{t|frame duration}} milliseconds per frame. {{t|frames}} are indexed numerically, based on 16x32 peices of the image. This index increases as you go from left to right, starting from 0. {{t|flip}} indicates whether to flip the sprites along the Y axis; {{t|loop}} indicates whether to repeat the animation until <samp>stopAnimation</samp> is used. If you're animating the farmer, it may be helpful to reference [[Modding:Farmer_sprite#Sprite_Index_Breakdown]]
 
|-
 
|-
| <tt>attachCharacterToTempSprite {{t|actor}}</tt>
+
| <samp>attachCharacterToTempSprite {{t|actor}}</samp>
 
| Attach an actor to the most recent temporary sprite.
 
| Attach an actor to the most recent temporary sprite.
 
|-
 
|-
| <tt>awardFestivalPrize</tt>
+
| <samp>awardFestivalPrize</samp>
 
| Awards the festival prize to the winner for the easter egg hunt and ice fishing contest.
 
| Awards the festival prize to the winner for the easter egg hunt and ice fishing contest.
 
|-
 
|-
| <tt>awardFestivalPrize {{t|item type}}</tt>
+
| <samp>awardFestivalPrize {{t|item type}}</samp>
 
| Awards the specified item to the player. Possible item types are "pan", "sculpture", "rod", "sword", "hero", "joja", "slimeegg", "emilyClothes", and "jukebox".
 
| Awards the specified item to the player. Possible item types are "pan", "sculpture", "rod", "sword", "hero", "joja", "slimeegg", "emilyClothes", and "jukebox".
 
|-
 
|-
| <tt>broadcastEvent</tt>
+
| <samp>beginSimultaneousCommand</samp>
| TODO: Explain broadcastEvent.
+
| This command states that the next event commands will all be done at the same time.  Must also have endSimultaneousCommand after the commands needed to execute at the same time.
 +
|-
 +
| <samp>broadcastEvent [local]</samp>
 +
| Makes the event a "broadcast event", forcing others players connected to also see it. Any players connected will be forced to warp to this event. This is used in some vanilla events like when Lewis shows the farmer the abandoned Community Center.
 +
 
 +
If the "local" option is given (not a boolean), then client players will see the event as if the "farmer" actor was their own farmer instead of the Host farmer. The "local" option isn't used anywhere in the vanilla game.
 
|-
 
|-
| <tt>catQuestion</tt>
+
| <samp>catQuestion</samp>
 
| Trigger question about adopting your pet.
 
| Trigger question about adopting your pet.
 
|-
 
|-
| <tt>cave</tt>
+
| <samp>cave</samp>
 
| Trigger the question for the farm cave type. This will work again later, however changing from bats to mushrooms will not remove the mushroom spawning objects.
 
| Trigger the question for the farm cave type. This will work again later, however changing from bats to mushrooms will not remove the mushroom spawning objects.
 
|-
 
|-
| <tt>changeLocation {{t|location}}</tt>
+
| <samp>changeLocation {{t|location}}</samp>
 
| Change to another location and run the remaining event script there.
 
| Change to another location and run the remaining event script there.
 
|-
 
|-
| <tt>changeMapTile {{t|layer}} {{t|x}} {{t|y}} {{t|tile index}}</tt>
+
| <samp>changeMapTile {{t|layer}} {{t|x}} {{t|y}} {{t|tile index}}</samp>
 
| Change the specified tile to a particular value.
 
| Change the specified tile to a particular value.
 
|-
 
|-
| <tt>changePortrait {{t|npc}} {{t|portrait}}</tt>
+
| <samp>changeName {{t|actor}} {{t|displayName}}
| Change the NPC's portrait to be from "Portraits/{{t|actor}}_<sprite&gt".
+
| Sets the display name of the actor to displayName, with underscores replaced by spaces.
 +
|-
 +
| <samp>changePortrait {{t|npc}} {{t|portrait}}</samp>
 +
| Change the NPC's portrait to be from "Portraits/{{t|actor}}_{{t|portrait}}".
 
|-
 
|-
| <tt>changeSprite {{t|actor}} {{t|sprite}}</tt>
+
| <samp>changeSprite {{t|actor}} {{t|sprite}}</samp>
 
| Change the actor's sprite to be from "Characters/{{t|actor}}_{{t|sprite}}".
 
| Change the actor's sprite to be from "Characters/{{t|actor}}_{{t|sprite}}".
 
|-
 
|-
| <tt>changeToTemporaryMap {{t|map}} {{o|pan}}</tt>
+
| <samp>changeToTemporaryMap {{t|map}} {{o|pan}}</samp>
| Change the location to a temporary one loaded from the map file specified by {{t|map}}. If the {{o|pan}} argument is omitted, also pan to tile coordinates <tt>0, 0</tt> on the new map. If any value is given for {{o|pan}}, no panning occurs.
+
| Change the location to a temporary one loaded from the map file specified by {{t|map}}. If the {{o|pan}} argument is omitted, also pan to tile coordinates <samp>0, 0</samp> on the new map. If any value is given for {{o|pan}}, no panning occurs.
 
|-
 
|-
| <tt>changeYSourceRectOffset {{t|npc}} {{t|offset}}</tt>
+
| <samp>changeYSourceRectOffset {{t|npc}} {{t|offset}}</samp>
| Changes the NPC's vertical texture offset. Example: <tt>changeYSourceRectOffset Abigail 96</tt> will offset her sprite sheet, showing her looking left instead of down. This persists for the rest of the event. This is only used in Emily's ''Clothing Therapy'' event to display the various outfits properly.
+
| Changes the NPC's vertical texture offset. Example: <samp>changeYSourceRectOffset Abigail 96</samp> will offset her sprite sheet, showing her looking left instead of down. This persists for the rest of the event. This is only used in Emily's ''Clothing Therapy'' event to display the various outfits properly.
 
|-
 
|-
| <tt>characterSelect</tt>
+
| <samp>characterSelect</samp>
 
| Seemingly unused. Sets Game1.gameMode to 5 and Game1.menuChoice = 0.
 
| Seemingly unused. Sets Game1.gameMode to 5 and Game1.menuChoice = 0.
 
|-
 
|-
| <tt>cutscene {{t|cutscene}}</tt>
+
| <samp>cutscene {{t|cutscene}}</samp>
 
| Activate a cutscene. See [[Modding:Event_data#Cutscenes|cutscene list]].
 
| Activate a cutscene. See [[Modding:Event_data#Cutscenes|cutscene list]].
 
|-
 
|-
| <tt>doAction {{t|x}} {{t|y}}</tt>
+
| <samp>doAction {{t|x}} {{t|y}}</samp>
| Acts as if the player had clicked the specified x/y coordinate and triggers any relevant action. It is commonly used to open doors from inside events, but it can be used for other purposes. If you use it on an NPC you will talk to them, and if the player is holding an item they will give that item as a gift. <tt>doAction</tt> activates objects in the main game world (their actual location outside of the event), so activating NPCs like this is very tricky, and their reaction varies depending on what the player is holding.
+
| Acts as if the player had clicked the specified x/y coordinate and triggers any relevant action. It is commonly used to open doors from inside events, but it can be used for other purposes. If you use it on an NPC you will talk to them, and if the player is holding an item they will give that item as a gift. <samp>doAction</samp> activates objects in the main game world (their actual location outside of the event), so activating NPCs like this is very tricky, and their reaction varies depending on what the player is holding.
 
|-
 
|-
| <tt>dump {{t|group}}</tt>
+
| <samp>dump {{t|group}}</samp>
| Starts the special "cold shoulder" and "second chance" dialogue events for the given group (women if group is <tt>girls</tt> and men if it is anything else.) The cold shoulder event has an id of <tt>dumped_Girls</tt> or <tt>dumped_Guys</tt> and lasts 7 days; the second chance event has an id of <tt>secondChance_Girls</tt> or <tt>secondChance_Guys</tt> and lasts 14 days. During open beta testing of version 1.3 there was a second parameter which determined the amount of hearts lost, but support for that parameter was removed before release.
+
| Starts the special "cold shoulder" and "second chance" dialogue events for the given group (women if group is <samp>girls</samp> and men if it is anything else.) The cold shoulder event has an id of <samp>dumped_Girls</samp> or <samp>dumped_Guys</samp> and lasts 7 days; the second chance event has an id of <samp>secondChance_Girls</samp> or <samp>secondChance_Guys</samp> and lasts 14 days. During open beta testing of version 1.3 there was a second parameter which determined the amount of hearts lost, but support for that parameter was removed before release.
 
|-
 
|-
| <tt>elliotbooktalk</tt>
+
| <samp>endSimultaneousCommand</samp>
 +
| Sets the end of all commands that are to be done simultaneously.  Format: <samp>beginSimultaneousCommand/<Event Commands>.../endSimultaneousCommand</samp>
 +
|-
 +
| <samp>elliotbooktalk</samp>
 
| Elliot book talk.
 
| Elliot book talk.
 
|-
 
|-
| <tt>emote {{t|actor}} {{t|emote ID}}</tt>
+
| <samp>emote {{t|actor}} {{t|emote ID}}</samp>
| Make the given NPC name perform an emote, which is a little icon shown above the NPC's head. Emotes are stored in <tt>Content\TileSheets\emotes.xnb</tt> (see [https://www.reddit.com/r/StardewValley/comments/5s5m9g/help_annoyed_squiggle/ddd33qg/ list of emotes]).
+
| Make the given NPC name perform an emote, which is a little icon shown above the NPC's head. Emotes are stored in <samp>Content\TileSheets\emotes.xnb</samp>; see [[#Emotes|list of emotes]].
 
|-
 
|-
| <tt>end</tt>
+
| <samp>end</samp>
| Ends the current event by fading out, then resumes the game world and places the player on the square where they entered the zone. All <tt>end</tt> parameters do this by default ''unless otherwise stated''.
+
| Ends the current event by fading out, then resumes the game world and places the player on the square where they entered the zone. All <samp>end</samp> parameters do this by default ''unless otherwise stated''.
 
|-
 
|-
| <tt>end bed</tt>
+
| <samp>end bed</samp>
| Same as <tt>end</tt>, but warps the player to the x/y coordinate of their most recent bed. This does not warp them to the farmhouse, only to the x/y coordinate of the bed regardless of map.
+
| Same as <samp>end</samp>, but warps the player to the x/y coordinate of their most recent bed. This does not warp them to the farmhouse, only to the x/y coordinate of the bed regardless of map.
 
|-
 
|-
| <tt>end beginGame</tt>
+
| <samp>end beginGame</samp>
| ''Used only during the introduction sequence in the bus stop event.'' It sets the game mode to <tt>playingGameMode</tt>, warps the player to the farmhouse (9, 9), ends the current event, and starts a new day.
+
| ''Used only during the introduction sequence in the bus stop event.'' It sets the game mode to <samp>playingGameMode</samp>, warps the player to the farmhouse (9, 9), ends the current event, and starts a new day.
 
|-
 
|-
| <tt>end credits</tt>
+
| <samp>end credits</samp>
| ''Not used in any normal events.'' Clears debris weather, changes the music to wedding music, sets game mode to <tt>creditsMode</tt> and ends the current event.
+
| ''Not used in any normal events.'' Clears debris weather, changes the music to wedding music, sets game mode to <samp>creditsMode</samp> and ends the current event.
 
|-
 
|-
| <tt>end dialogue {{t|NPC}} {{t|"Text for next chat"}}</tt>
+
| <samp>end dialogue {{t|NPC}} {{t|"Text for next chat"}}</samp>
| Same as <tt>end</tt>, and additionally clears the existing NPC dialogue for the day and replaces it with the line(s) specified at the end of the command. Example usage: ''end dialogue Abigail "It was fun talking to you today.$h"''
+
| Same as <samp>end</samp>, and additionally clears the existing NPC dialogue for the day and replaces it with the line(s) specified at the end of the command. Example usage: ''end dialogue Abigail "It was fun talking to you today.$h"''
 
|-
 
|-
| <tt>end dialogueWarpOut {{t|NPC}} {{t|"Text for next chat"}}</tt>
+
| <samp>end dialogueWarpOut {{t|NPC}} {{t|"Text for next chat"}}</samp>
| See <tt>end dialogue</tt> and <tt>end warpOut</tt>.
+
| See <samp>end dialogue</samp> and <samp>end warpOut</samp>.
 
|-
 
|-
| <tt>end invisible {{t|NPC}}</tt>
+
| <samp>end invisible {{t|NPC}}</samp>
| Same as <tt>end</tt>, and additionally turns the specified NPC invisible (cannot be interacted with until the next day).
+
| Same as <samp>end</samp>, and additionally turns the specified NPC invisible (cannot be interacted with until the next day).
 
|-
 
|-
| <tt>end invisibleWarpOut {{t|NPC}}</tt>
+
| <samp>end invisibleWarpOut {{t|NPC}}</samp>
| See <tt>end invisible</tt> and <tt>end warpOut</tt>.
+
| See <samp>end invisible</samp> and <samp>end warpOut</samp>.
 
|-
 
|-
| <tt>end newDay</tt>
+
| <samp>end newDay</samp>
 
| Ends both the event and the day (warping player to their bed, saving the game, selling everything in the shipping box, etc).
 
| Ends both the event and the day (warping player to their bed, saving the game, selling everything in the shipping box, etc).
 
|-
 
|-
| <tt>end position {{t|x}} {{t|y}}</tt>
+
| <samp>end position {{t|x}} {{t|y}}</samp>
| Same as <tt>end</tt>, and additionally warps the player to the map coordinates specified in ''x y''.
+
| Same as <samp>end</samp>, and additionally warps the player to the map coordinates specified in ''x y''.
 
|-
 
|-
| <tt>end warpOut</tt>
+
| <samp>end warpOut</samp>
| Same as <tt>end</tt>, and additionally finds the first warp out of the current location (second warp if male and in the bathhouse), and warps the player to its endpoint.
+
| Same as <samp>end</samp>, and additionally finds the first warp out of the current location (second warp if male and in the bathhouse), and warps the player to its endpoint.
 
|-
 
|-
| <tt>end wedding</tt>
+
| <samp>end wedding</samp>
 
| ''Used only in the hardcoded wedding event.'' Changes the character's clothes back to normal, sets Lewis' post-event chat to ''"That was a beautiful ceremony. Congratulations!$h"'', and warps the player to their farm.
 
| ''Used only in the hardcoded wedding event.'' Changes the character's clothes back to normal, sets Lewis' post-event chat to ''"That was a beautiful ceremony. Congratulations!$h"'', and warps the player to their farm.
 
|-
 
|-
| <tt>extendSourceRect {{t|actor}} reset</tt>
+
| <samp>extendSourceRect {{t|actor}} reset</samp>
 
| Resets the actors sprite.
 
| Resets the actors sprite.
 
|-
 
|-
| <tt>extendSourceRect {{t|actor}} {{t|horizontal}} {{t|vertical}} {{o|ignoreUpdates}}</tt>
+
| <samp>extendSourceRect {{t|actor}} {{t|horizontal}} {{t|vertical}} {{o|ignoreUpdates}}</samp>
 
| TODO: Explain Character.extendSourceRect
 
| TODO: Explain Character.extendSourceRect
 
|-
 
|-
| <tt>eyes {{t|eyes}} {{t|blink}}</tt>
+
| <samp>eyes {{t|eyes}} {{t|blink}}</samp>
| Change the player's eyes.
+
| Change the player's eyes. Eyes is represented by and Integer from 0 - 5 (open, closed, right, left, half closed, wide open).  Blink is a timer that is represented with a negative number. -1000 is the default timer.  
 
|-
 
|-
| <tt>faceDirection {{t|actor}} {{t|direction}} {{o|continue}}</tt>
+
| <samp>faceDirection {{t|actor}} {{t|direction}} {{o|continue}}</samp>
 
| Make a named NPC face a [[#Directions|direction]]. If no parameter is supplied for [continue], the game will pause.
 
| Make a named NPC face a [[#Directions|direction]]. If no parameter is supplied for [continue], the game will pause.
 
|-
 
|-
| <tt>fade {{o|unfade}}</tt>
+
| <samp>fade {{o|unfade}}</samp>
| Fades out to black if no parameter is supplied. If the parameter is <tt>unfade</tt> (not <tt>true</tt>), fades in from black.
+
| Fades out to black if no parameter is supplied. If the parameter is <samp>unfade</samp> (not <samp>true</samp>), fades in from black.
 
|-
 
|-
| <tt>farmerAnimation {{t|anim}}</tt>
+
| <samp>farmerAnimation {{t|anim}}</samp>
| Briefly sets the farmer's sprite to {{t|anim}} for a variable (depending on sprite) interval. Only used once in vanilla events. Using <tt>showFrame farmer <sprite></tt> twice (to set a new frame and back) is more powerful as it lets you control the interval using <tt>pause n</tt>.
+
| Briefly sets the farmer's sprite to {{t|anim}} for a variable (depending on sprite) interval. Only used once in vanilla events. Using <samp>showFrame farmer <sprite></samp> twice (to set a new frame and back) is more powerful as it lets you control the interval using <samp>pause n</samp>.
 
|-
 
|-
| <tt>farmerEat {{t|object ID}}</tt>
+
| <samp>farmerEat {{t|object ID}}</samp>
| Make the player eat an object
+
| Make the player eat an object. (The farmer actually does eat the object, so buffs will apply, healing will occur, etc.)
 
|-
 
|-
| <tt>fork {{o|req}} {{t|event ID}}</tt>
+
| <samp>fork {{o|req}} {{t|event ID}}</samp>
| End the current command script and starts a different script with the given ID, but only if the {{o|req}} condition is met. (Example: <tt>/fork choseWizard finalBossWizard</tt> in the ''"Necromancer"'' script of Sebastian's 6-heart event.) The {{o|req}} condition can be a mail ID or dialogue answer ID; if not specified, it checks if the <tt>specialEventVariable1</tt> variable was set (e.g. by a <tt>question</tt> event command or <tt>%fork</tt> dialogue command). The new script should have the same format as a normal event script, but without the mandatory three start fields.
+
| End the current command script and starts a different script with the given ID, but only if the {{o|req}} condition is met. (Example: <samp>/fork choseWizard finalBossWizard</samp> in the ''"Necromancer"'' script of Sebastian's 6-heart event.) The {{o|req}} condition can be a mail ID or dialogue answer ID; if not specified, it checks if the <samp>specialEventVariable1</samp> variable was set (''e.g.,'' by a <samp>question</samp> event command or <samp>%fork</samp> dialogue command). The new script should have the same format as a normal event script, but without the mandatory three start fields.
 
|-
 
|-
| <tt>friendship {{t|npc}} {{t|amount}}</tt>
+
| <samp>friendship {{t|npc}} {{t|amount}}</samp>
 
| Add the given number of friendship points with the named NPC. (There are 250 points per heart.)
 
| Add the given number of friendship points with the named NPC. (There are 250 points per heart.)
 
|-
 
|-
| <tt>globalFade {{o|speed}}</tt>
+
| <samp>globalFade {{o|speed}} {{o|continue}}</samp>
| Fade to black at a particular speed (default 0.007). If no speed is specified, the event will continue immediately; otherwise, it will continue after the fade is finished. The fade effect disappears when this command is done; to avoid that, use the <tt>viewport</tt> command to move the camera off-screen.
+
| Fade to black at a particular speed (default 0.007). If <samp>continue</samp> is specified, the event continues as the fade occurs, else the event pauses until the fade is finished. The fade effect disappears when this command is done; to avoid that, use the <samp>viewport</samp> command to move the camera off-screen.
 
|-
 
|-
| <tt>globalFadeToClear {{o|speed}}</tt>
+
| <samp>globalFadeToClear {{o|speed}} {{o|continue}}</samp>
| Fade to clear (unfade?) at a particular speed (default 0.007). If no speed is specified, the event will continue immediately; otherwise, it will continue after the fade is finished.
+
| Fade to clear (unfade?) at a particular speed (default 0.007). If <samp>continue</samp> is specified, the event continues as the fade occurs, else the event pauses until the fade is finished.
 
|-
 
|-
| <tt>glow {{t|r}} {{t|g}} {{t|b}} {{t|hold}}</tt>
+
| <samp>glow {{t|r}} {{t|g}} {{t|b}} {{t|hold}}</samp>
| Make the screen glow once, fading into and out of the {{t|r}} {{t|g}} {{t|b}} values over the course of a second. If {{t|hold}} is <tt>true</tt> it will fade to and hold that color until <tt>stopGlowing</tt> is used.
+
| Make the screen glow once, fading into and out of the {{t|r}} {{t|g}} {{t|b}} values over the course of a second. If {{t|hold}} is <samp>true</samp> it will fade to and hold that color until <samp>stopGlowing</samp> is used.
 
|-
 
|-
| <tt>grandpaCandles</tt>
+
| <samp>grandpaCandles</samp>
 
| Do grandpa candles
 
| Do grandpa candles
 
|-
 
|-
| <tt>grandpaEvaluation</tt>
+
| <samp>grandpaEvaluation</samp>
 
| Do grandpa evaluation
 
| Do grandpa evaluation
 
|-
 
|-
| <tt>grandpaEvaluation2</tt>
+
| <samp>grandpaEvaluation2</samp>
 
| Do grandpa evaluation (manually resummoned)
 
| Do grandpa evaluation (manually resummoned)
 
|-
 
|-
| <tt>halt</tt>
+
| <samp>halt</samp>
 
| Make everyone stop.
 
| Make everyone stop.
 
|-
 
|-
| <tt>hospitaldeath</tt>
+
| <samp>hideShadow {{t|actor}} {{t|true/false}}</samp>
 +
| Hide the shadow of the named actor. False unhides it.
 +
|-
 +
| <samp>hospitaldeath</samp>
 
|  
 
|  
 
|-
 
|-
| <tt>itemAboveHead {{o|type}}</tt>
+
| <samp>ignoreCollisions {{t|character ID}}</samp>
| Show an item above the player's head. The {{o|type}} can be "pan", "hero", "sculpture", "joja", "slimeEgg", "rod", "sword", or "ore". If no item is specified, then they will 'hold' nothing?
+
| Make a character ignore collisions when moving for the remainder of the event. For example, they'll walk through walls if needed to reach their destination. The character ID can be <samp>farmer</samp> or an NPC name like <samp>Abigail</samp>.
 +
|-
 +
| <samp>ignoreEventTileOffset</samp>
 +
| Tile positions in farm events are offset to match the farmhouse position. If an event shouldn't be based on the farmhouse position, add an ignoreEventTileOffset command to disable the offset for that event. This must be the 4th command (after the 3 initial setup ones) to take effect.
 
|-
 
|-
| <tt>jump {{t|actor}} {{o|intensity}}</tt>
+
| <samp>itemAboveHead {{o|type}}</samp>
| Make a the named NPC jump. The default <tt>intensity</tt> is 8.
+
| Show an item above the player's head. The {{o|type}} can be "pan", "hero", "sculpture", "joja", "slimeEgg", "rod", "sword", or "ore". If no item is specified, then they will 'hold' nothing? Arbitrary items are not supported.
 
|-
 
|-
| <tt>loadActors {{t|layer}}</tt>
+
| <samp>jump {{t|actor}} {{o|intensity}}</samp>
 +
| Make a the named NPC jump. The default <samp>intensity</samp> is 8.
 +
|-
 +
| <samp>loadActors {{t|layer}}</samp>
 
| Load the actors from a layer in the map file.
 
| Load the actors from a layer in the map file.
 
|-
 
|-
| <tt>makeInvisible {{t|x}} {{t|y}} {{o|x-dimension}} {{o|y-dimension}}</tt>
+
| <samp>makeInvisible {{t|x}} {{t|y}} {{o|x-dimension}} {{o|y-dimension}}</samp>
| Temporarily hides selected objects or terrain features: the tile(s) will become passable for the duration of the event. Useful for clearing a walking area during events, especially in the FarmHouse. (Example: <tt>/makeInvisible 8 14</tt> hides any object or terrain feature at tile 8, 14 in the current map.) The optional {{o|x-dimension}} and {{o|y-dimension}} arguments allow you to specify a larger area to be cleared. (Example: <tt>/makeInvisible 68 36 13 7</tt> in Leah's 14-heart event clears a 13 × 7 tile rectangular area with the top-left corner at coordinate 68, 36.)
+
| Temporarily hides selected objects or terrain features: the tile(s) will become passable for the duration of the event. Useful for clearing a walking area during events, especially in the FarmHouse. (Example: <samp>/makeInvisible 8 14</samp> hides any object or terrain feature at tile 8, 14 in the current map.) The optional {{o|x-dimension}} and {{o|y-dimension}} arguments allow you to specify a larger area to be cleared. (Example: <samp>/makeInvisible 68 36 13 7</samp> in Leah's 14-heart event clears a 13 × 7 tile rectangular area with the top-left corner at coordinate 68, 36.). Known bugs: some furniture may not re-appear immediately?
 
|-
 
|-
| <tt>mail {{t|letter ID}}</tt>
+
| <samp>mail {{t|letter ID}}</samp>
| Queue a letter to be received tomorrow (see <tt>Content\Data\mail.xnb</tt> for available mail).
+
| Queue a letter to be received tomorrow (see <samp>Content\Data\mail.xnb</samp> for available mail).
 
|-
 
|-
| <tt>message "{{t|text}}"</tt>
+
| <samp>message "{{t|text}}"</samp>
 
| Show a dialogue box (no speaker). See [[#Dialogue format|dialogue format]] for the {{t|text}} format.
 
| Show a dialogue box (no speaker). See [[#Dialogue format|dialogue format]] for the {{t|text}} format.
 
|-
 
|-
| <tt>minedeath</tt>
+
| <samp>minedeath</samp>
 
| TODO.
 
| TODO.
 
|-
 
|-
| <tt>move {{t|actor}} {{t|x}} {{t|y}} {{t|facing}} {{t|continue}}</tt>
+
| <samp>money {{t|amount}}</samp>
| Make a named NPC move by the given tile offset from their current position (along one axis ''only''), and face the given [[#Directions|direction]] when they're done. To move along multiple axes, you must specify multiple <tt>move</tt> commands. By default the event pauses while a move command is occurring, but if {{t|continue}} is set to ''true'' the movement is asynchronous and will run simultaneously with other event commands.
+
| Adds/removes the specified amount of money.  
 
|-
 
|-
| <tt>pause {{t|duration}}</tt>
+
| <samp>move {{t|actor}} {{t|x}} {{t|y}} {{t|facing}} {{t|continue}}</samp>
 +
| Make a named NPC move by the given tile offset from their current position (along one axis ''only''), and face the given [[#Directions|direction]] when they're done. To move along multiple axes, you must specify multiple <samp>move</samp> commands. By default the event pauses while a move command is occurring, but if {{t|continue}} is set to ''true'' the movement is asynchronous and will run simultaneously with other event commands. You can also move multiple people at a time in a single event command with move - an example of <samp>/move Abigail 1 0 1 Sam 0 1 1 Sebastian 2 0 1/</samp> will have Abigail, Sam, and Sebastian all move at the same time in their respective directions.
 +
 
 +
|-
 +
| <samp>pause {{t|duration}}</samp>
 
| Pause the game for the given number of milliseconds.
 
| Pause the game for the given number of milliseconds.
 
|-
 
|-
| <tt>playMusic {{t|track}}</tt>
+
| <samp>playMusic {{t|track}}</samp>
 
| Play the specified music track ID. If the track is 'samBand', the track played will change depend on certain dialogue answers (76-79).
 
| Play the specified music track ID. If the track is 'samBand', the track played will change depend on certain dialogue answers (76-79).
 
|-
 
|-
| <tt>playSound {{t|sound}}</tt>
+
| <samp>playSound {{t|sound}}</samp>
 
| Play a given sound ID from the game's sound bank.
 
| Play a given sound ID from the game's sound bank.
 
|-
 
|-
| <tt>playerControl</tt>
+
| <samp>playerControl</samp>
 
| Give the player control back.
 
| Give the player control back.
 
|-
 
|-
| <tt>positionOffset {{t|actor}} {{t|x}} {{t|y}}</tt>
+
| <samp>positionOffset {{t|actor}} {{t|x}} {{t|y}}</samp>
 
| Offset the position of the named NPC by the given number of pixels. This happens instantly, with no walking animation.
 
| Offset the position of the named NPC by the given number of pixels. This happens instantly, with no walking animation.
 
|-
 
|-
| <tt>proceedPosition {{t|actor}}</tt>
+
| <samp>proceedPosition {{t|actor}}</samp>
 
| TODO: Explain
 
| TODO: Explain
 
|-
 
|-
| <tt>question null "{{t|question}}#{{t|answer1}}#{{t|answer2}}"</tt>
+
| <samp>question null "{{t|question}}#{{t|answer1}}#{{t|answer2}}"</samp>
 
| Show a dialogue box with some answers and an optional question. When the player chooses an answer, the event script continues with no other effect.
 
| Show a dialogue box with some answers and an optional question. When the player chooses an answer, the event script continues with no other effect.
 
|-
 
|-
| <tt>question fork{{t|answer index}} "{{t|question}}#{{t|answer 0}}#{{t|answer 1}}#..."</tt>
+
| <samp>question fork{{t|answer index}} "{{t|question}}#{{t|answer 0}}#{{t|answer 1}}#..."</samp>
| Show a dialogue with some answers and an optional question. When the player chooses the answer matching the <tt>fork{{t|answer index}}</tt> (like <tt>fork0</tt> for the first answer), the <tt>specialEventVariable1</tt> variable is set. Usually followed by a <tt>fork</tt> command.
+
| Show a dialogue with some answers and an optional question. When the player chooses the answer matching the <samp>fork{{t|answer index}}</samp> (like <samp>fork0</samp> for the first answer), the <samp>specialEventVariable1</samp> variable is set. Usually followed by a <samp>fork</samp> command. Example:
 +
<syntaxhighlight lang="json">.../question fork0 \"#answer0#answer1#answer3\"/fork eventidhere/..."</syntaxhighlight>
 
|-
 
|-
| <tt>quickquestion "#{{t|question1}}#{{t|question2}}#{{t|question3}}(break){{t|command}}#{{t|answer1 script}}(break){{t|answer2 script}}(break){{t|answer3 script}}\\"</tt>
+
| <samp>quickQuestion {{t|question}}#{{t|answer1}}#{{t|answer2}}#{{t|answer3}}(break){{t|answer1 script}}(break){{t|answer2 script}}(break){{t|answer3 script}}</samp>
| Show a dialogue box with some answers and an optional question. When the player chooses an answer, the event script continues with no other effect.
+
| Show a dialogue box with an optional question and some answers. The answer scripts are sequences of commands separated by <samp>\\</samp>. When the player chooses an answer, the relevant answer script is executed and then the event continues. Usually used when an NPC's response will depend on the answer chosen but nothing else in the event has to depend on it.
 +
*Note: If quickQuestion is used immediately at the start of an event block (Example: "ExampleEvent": "quickQuestion [rest of the event]"), it will cause a dialogue loop. Adding another command in front of quickQuestion resolves this issue (Example: "ExampleEvent": "pause 1/quickQuestion [rest of the event]").
 
|-
 
|-
| <tt>removeItem {{t|object ID}}</tt>
+
| <samp>removeItem {{t|object ID}}</samp>
 
| Remove the first of an object from a player's inventory.
 
| Remove the first of an object from a player's inventory.
 
|-
 
|-
| <tt>removeObject {{t|x}} {{t|y}}</tt>
+
| <samp>removeObject {{t|x}} {{t|y}}</samp>
 
| Remove the prop at a position.
 
| Remove the prop at a position.
 
|-
 
|-
| <tt>removeQuest {{t|quest ID}}</tt>
+
| <samp>removeQuest {{t|quest ID}}</samp>
 
| Remove the specified quest from the quest log.
 
| Remove the specified quest from the quest log.
 
|-
 
|-
| <tt>removeSprite {{t|x}} {{t|y}}</tt>
+
| <samp>removeSprite {{t|x}} {{t|y}}</samp>
 
| Remove the temporary sprite at a position.
 
| Remove the temporary sprite at a position.
 
|-
 
|-
| <tt>removeTemporarySprites</tt>
+
| <samp>removeTemporarySprites</samp>
 
| Remove all temporary sprites.
 
| Remove all temporary sprites.
 
|-
 
|-
| <tt>removeTile {{t|x}} {{t|y}} {{t|layer}}</tt>
+
| <samp>removeTile {{t|x}} {{t|y}} {{t|layer}}</samp>
 
| Remove a tile from the specified layer.
 
| Remove a tile from the specified layer.
 
|-
 
|-
| <tt>resetVariable</tt>
+
| <samp>resetVariable</samp>
| Set the first event variable to false.
+
| Set the <samp>specialEventVariable1</samp> to false.
 
|-
 
|-
| <tt>rustyKey</tt>
+
| <samp>rustyKey</samp>
 
| Gives the player the rusty key. (Sewer key)
 
| Gives the player the rusty key. (Sewer key)
 
|-
 
|-
| <tt>screenFlash {{t|alpha}}</tt>
+
| <samp>screenFlash {{t|alpha}}</samp>
| Flashes the screen white for an instant. An alpha value from <tt>0</tt> to <tt>1</tt> adjusts the brightness, and values from <tt>1</tt> and out flashes pure white for <tt>x</tt> seconds.
+
| Flashes the screen white for an instant. An alpha value from <samp>0</samp> to <samp>1</samp> adjusts the brightness, and values from <samp>1</samp> and out flashes pure white for <samp>x</samp> seconds.
 
|-
 
|-
| <tt>setRunning</tt>
+
| <samp>setRunning</samp>
 
| Set the player as running.
 
| Set the player as running.
 
|-
 
|-
| <tt>shake {{t|actor}} {{t|duration}}</tt>
+
| <samp>shake {{t|actor}} {{t|duration}}</samp>
 
| Shake the named NPC for the given number of milliseconds.
 
| Shake the named NPC for the given number of milliseconds.
 
|-
 
|-
| <tt>showFrame farmer flip</tt>
+
| <samp>showFrame farmer {{t|frame}} {{t|flip}}</samp>
| Flip the farmer's current sprite along the Y axis. TODO: Behavior with farmer looks strange?
+
| Flip the farmer's current sprite along the Y axis. Farmer looks strange if not facing the correct direction prior to 1.6. Flip is a true/false value.
 
|-
 
|-
| <tt>showFrame {{t|actor}} {{t|frame ID}}</tt>
+
| <samp>showFrame {{t|actor}} {{t|frame ID}}</samp>
| Set the named NPC's current frame in their <tt>Content\Characters\*.xnb</tt> spritesheet. Note that setting the farmer's sprite only changes ''parts'' of the sprite (some times arms, some times arms and legs and torso but not the head, etc). To rotate the whole sprite, use ''faceDirection farmer {{t|0/1/2/3}}'' first before modifying the sprite with ''showFrame''. Frame ID starts from 0. If farmer is the one whose frame is being set, "farmer" can be eliminated, i.e. both <tt>showFrame farmer {{t|frame ID}}</tt> and <tt>showFrame {{t|frame ID}}</tt> would work.
+
| Set the named NPC's current frame in their <samp>Content\Characters\*.xnb</samp> spritesheet. Note that setting the farmer's sprite only changes ''parts'' of the sprite (some times arms, some times arms and legs and torso but not the head, etc). To rotate the whole sprite, use ''faceDirection farmer {{t|0/1/2/3}}'' first before modifying the sprite with ''showFrame''. Frame ID starts from 0. If farmer is the one whose frame is being set, "farmer" can be eliminated, ''i.e.,'' both <samp>showFrame farmer {{t|frame ID}}</samp> and <samp>showFrame {{t|frame ID}}</samp> would work.
 
|-
 
|-
| <tt>showRivalFrame {{t|frame}}</tt>
+
| <samp>showRivalFrame {{t|frame}}</samp>
 
| Set the 'rival' actor's sprite to a specific frame.
 
| Set the 'rival' actor's sprite to a specific frame.
 
|-
 
|-
| <tt>skippable</tt>
+
| <samp>skippable</samp>
 
| Allow skipping this event.
 
| Allow skipping this event.
 
|-
 
|-
| <tt>speak {{t|character}} "{{t|text}}"</tt>
+
| <samp>speak {{t|character}} "{{t|text}}"</samp>
 
| Show dialogue text from a named NPC; see [[#Dialogue format|dialogue format]].
 
| Show dialogue text from a named NPC; see [[#Dialogue format|dialogue format]].
 
|-
 
|-
| <tt>specificTemporarySprite {{t|sprite}} {{o|other params}}</tt>
+
| <samp>specificTemporarySprite {{t|sprite}} {{o|other params}}</samp>
| Shows the given temporary sprite. Parameters change depending on the sprite.
+
| Shows the given temporary sprite. Parameters change depending on the sprite. '''These are quite hardcoded and probably not easily reusable, other than the little heart.'''
 
|-
 
|-
| <tt>speed farmer {{t|modifier}}</tt>
+
| <samp>speed farmer {{t|modifier}}</samp>
 
| Add a speed modifier to the farmer. Is persistent and you will have to use the command again to return to normal speed.
 
| Add a speed modifier to the farmer. Is persistent and you will have to use the command again to return to normal speed.
 
|-
 
|-
| <tt>speed {{t|actor}} {{t|speed}}</tt>
+
| <samp>speed {{t|actor}} {{t|speed}}</samp>
 
| Sets the named NPC's speed (default speed is 3). Not applicable to the farmer. Applies only through the end of the next movement or animation on that NPC.
 
| Sets the named NPC's speed (default speed is 3). Not applicable to the farmer. Applies only through the end of the next movement or animation on that NPC.
 
|-
 
|-
| <tt>splitSpeak {{t|actor}} "{{t|text}}"</tt>
+
| <samp>splitSpeak {{t|actor}} "{{t|text}}"</samp>
 
| Dialogue, but chosen based on previous answer. ('~' is the separator used.)
 
| Dialogue, but chosen based on previous answer. ('~' is the separator used.)
 
|-
 
|-
| <tt>startJittering</tt>
+
| <samp>startJittering</samp>
 
| Make the player start jittering.
 
| Make the player start jittering.
 
|-
 
|-
| <tt>stopAdvancedMoves</tt>
+
| <samp>stopAdvancedMoves</samp>
 
| Stop movement from advancedMove.
 
| Stop movement from advancedMove.
 
|-
 
|-
| <tt>stopAnimation farmer</tt>
+
| <samp>stopAnimation farmer</samp>
 
| Stop the farmer's current animation.
 
| Stop the farmer's current animation.
 
|-
 
|-
| <tt>stopAnimation {{t|actor}} {{t|end frame}}</tt>
+
| <samp>stopAnimation {{t|actor}} {{o|end frame}}</samp>
 
| Stop the named NPC's current animation. Not applicable to the farmer.
 
| Stop the named NPC's current animation. Not applicable to the farmer.
 
|-
 
|-
| <tt>stopGlowing</tt>
+
| <samp>stopGlowing</samp>
 
| Make the screen stop glowing.
 
| Make the screen stop glowing.
 
|-
 
|-
| <tt>stopJittering</tt>
+
| <samp>stopJittering</samp>
 
| Make the player stop jittering.
 
| Make the player stop jittering.
 
|-
 
|-
| <tt>stopMusic</tt>
+
| <samp>stopMusic</samp>
 
| Stop any currently playing music.
 
| Stop any currently playing music.
 
|-
 
|-
| <tt>stopRunning</tt>
+
| <samp>stopRunning</samp>
 
| Make the farmer stop running.
 
| Make the farmer stop running.
 
|-
 
|-
| <tt>stopSwimming {{t|actor}}</tt>
+
| <samp>stopSwimming {{t|actor}}</samp>
 
| Make an actor stop swimming.
 
| Make an actor stop swimming.
 
|-
 
|-
| <tt>swimming {{t|actor}}</tt>
+
| <samp>swimming {{t|actor}}</samp>
 
| Make an actor start swimming.
 
| Make an actor start swimming.
 
|-
 
|-
| <tt>switchEvent {{t|event ID}}</tt>
+
| <samp>switchEvent {{t|event ID}}</samp>
 
| Changes the current event (ie. event commands) to another event in the same location.
 
| Changes the current event (ie. event commands) to another event in the same location.
 
|-
 
|-
| <tt>taxvote</tt>
+
| <samp>taxvote</samp>
 
| Trigger voting for or against a 3% shipping tax. (No effect on game?)
 
| Trigger voting for or against a 3% shipping tax. (No effect on game?)
 
|-
 
|-
| <tt>temporarySprite {{t|x}} {{t|y}} {{t|row in texture}} {{t|animation length}} {{t|animation interval}} {{t|flipped}} {{t|layer depth}}</tt>
+
| <samp>temporarySprite {{t|x}} {{t|y}} {{t|row in texture}} {{t|animation length}} {{t|animation interval}} {{t|flipped}} {{t|layer depth}}</samp>
| Create a temporary sprite with the given parameters.
+
| Create a temporary sprite with the given parameters, from the resource <samp>TileSheets/animations</samp>.
 
|-
 
|-
| <tt>textAboveHead {{t|actor}} "{{t|text}}"</tt>
+
| <samp>textAboveHead {{t|actor}} \"{{t|text}}\"</samp>
 
| Show a small text bubble over the named NPC's head with the given text; see [[#Dialogue format|dialogue format]].
 
| Show a small text bubble over the named NPC's head with the given text; see [[#Dialogue format|dialogue format]].
 
|-
 
|-
| <tt>tutorialMenu</tt>
+
| <samp>tutorialMenu</samp>
 
| Show the tutorial menu if no other menu is open.
 
| Show the tutorial menu if no other menu is open.
 
|-
 
|-
| <tt>updateMinigame {{t|event data}}</tt>
+
| <samp>updateMinigame {{t|event data}}</samp>
 
| Send an event to the current minigame.
 
| Send an event to the current minigame.
 
|-
 
|-
| <tt>viewport move {{t|x}} {{t|y}} {{t|duration}}</tt>
+
| <samp>viewport move {{t|x}} {{t|y}} {{t|duration}}</samp>
| Pan the the camera in the direction (and with the velocity) defined by ''x/y'' for the given duration in milliseconds. Example: ''"viewport move 2 -1 5000"'' moves the camera 2 pixels right and 1 pixel up for 5 seconds.
+
| Pan the the camera in the direction (and with the velocity) defined by ''x/y'' for the given duration in milliseconds. Example: ''"viewport move 2 -1 5000"'' moves the camera 2 pixels right and 1 pixel up for 5 seconds. The total distance moved is based on framerate, rather than time, and may be inconsistent.
 
|-
 
|-
| <tt>viewport {{t|x}} {{t|y}} [true [unfreeze]&#124;clamp [true&#124;unfreeze]]</tt>
+
| <samp>viewport {{t|x}} {{t|y}} [true [unfreeze]&#124;clamp [true&#124;unfreeze]]</samp>
 
| Instantly reposition the camera to center on the given X, Y tile position. TODO: explain other parameters.
 
| Instantly reposition the camera to center on the given X, Y tile position. TODO: explain other parameters.
 
|-
 
|-
| <tt>waitForKey {{t|key}} {{t|message on finish}}</tt>
+
| <samp>waitForAllStationary</samp>
| TODO: Explain
+
| Waits for all actors to stop moving before executing the next command.
 
|-
 
|-
| <tt>waitForOtherPlayers</tt>
+
| <samp>waitForOtherPlayers</samp>
 
| Wait for other players (vanilla MP).
 
| Wait for other players (vanilla MP).
 
|-
 
|-
| <tt>warp {{t|actor}} {{t|x}} {{t|y}}</tt>
+
| <samp>warp {{t|actor}} {{t|x}} {{t|y}}</samp>
 
| Warp the named NPC to a position to the given X, Y tile coordinate. This can be used to warp characters off-screen.
 
| Warp the named NPC to a position to the given X, Y tile coordinate. This can be used to warp characters off-screen.
 
|-
 
|-
| <tt>weddingSprite {{t|frame}}</tt>
+
| <samp>weddingSprite {{t|frame}}</samp>
 
| Sets the actor known as 'WeddingOutfits' to a particular frame.
 
| Sets the actor known as 'WeddingOutfits' to a particular frame.
 
|}
 
|}
Line 584: Line 633:  
! description
 
! description
 
|-
 
|-
| <tt>grabObject {{t|object ID}}</tt>
+
| <samp>grabObject {{t|object ID}}</samp>
 
| '''Broken.''' Triggers a generic animation. The item ID is ignored and the item isn't added.
 
| '''Broken.''' Triggers a generic animation. The item ID is ignored and the item isn't added.
 
|-
 
|-
| <tt>end busIntro</tt>
+
| <samp>end busIntro</samp>
 
| Supposed to start the bus intro scene, presumably the one that was cut before release.
 
| Supposed to start the bus intro scene, presumably the one that was cut before release.
 
|}
 
|}
 +
 +
===Comments===
 +
A command which begins with <code>--</code> is ignored. This can be used to insert comments or to disable commands temporarily while debugging an event. The comment ends at the next slash delimiter (<code>/</code>), so it can't contain slashes.
 +
 +
For example:
 +
<syntaxhighlight lang="js">
 +
"666/": "none/-1000 -1000/farmer 5 7 0/skippable/viewport 5 7 10/--set viewport near door/pause 2000/end"
 +
</syntaxHighlight>
    
===Directions===
 
===Directions===
Line 621: Line 678:  
|-
 
|-
 
| AbigailGame
 
| AbigailGame
| Sets up <tt>Journey of the Praire King</tt> mini-game with Abigail
+
| Sets up <samp>Journey of the Praire King</samp> mini-game with Abigail
 
|-
 
|-
 
| addSecretSantaItem
 
| addSecretSantaItem
Line 636: Line 693:  
|-
 
|-
 
| boardGame
 
| boardGame
| Sets up <tt>Solarion Chronicles</tt> mini-game
+
| Sets up <samp>Solarion Chronicles</samp> mini-game
 
|-
 
|-
 
| clearTempSprites
 
| clearTempSprites
Line 661: Line 718:  
| linusMoneyGone
 
| linusMoneyGone
 
| ??? (seems to be unused)
 
| ??? (seems to be unused)
 +
|-
 +
| marucomet
 +
| Maru Comet scene from her 14 heart event
 
|-
 
|-
 
| plane
 
| plane
Line 671: Line 731:  
===Dialogue format===
 
===Dialogue format===
 
See [[Modding:Dialogue#Format]].
 
See [[Modding:Dialogue#Format]].
 +
 +
==Common values==
 +
===Emotes===
 +
An ''emote'' is an animated icon bubble shown above an NPC's head to indicate a mood or reaction. Emote icons are stored in the <samp>TileSheets\emotes</samp> asset.
 +
 +
{| class="wikitable"
 +
|-
 +
! ID
 +
! <samp>Character</samp> constant
 +
|-
 +
| 4
 +
| <samp>emptyCanEmote</samp>
 +
|-
 +
| 8
 +
| <samp>questionMarkEmote</samp>
 +
|-
 +
| 12
 +
| <samp>angryEmote</samp>
 +
|-
 +
| 16
 +
| <samp>exclamationEmote</samp>
 +
|-
 +
| 20
 +
| <samp>heartEmote</samp>
 +
|-
 +
| 24
 +
| <samp>sleepEmote</samp>
 +
|-
 +
| 28
 +
| <samp>sadEmote</samp>
 +
|-
 +
| 32
 +
| <samp>happyEmote</samp>
 +
|-
 +
| 36
 +
| <samp>xEmote</samp>
 +
|-
 +
| 40
 +
| <samp>pauseEmote</samp>
 +
|-
 +
| 44
 +
| ''unused''
 +
|-
 +
| 48
 +
| ''unused''
 +
|-
 +
| 52
 +
| <samp>videoGameEmote</samp>
 +
|-
 +
| 56
 +
| <samp>musicNoteEmote</samp>
 +
|-
 +
| 60
 +
| <samp>blushEmote</samp>
 +
|}
    
==See also==
 
==See also==
 
*[https://docs.google.com/spreadsheets/d/1CpDrw23peQiq-C7F2FjYOMePaYe0Rc9BwQsj3h6sjyo/edit#gid=239695361 List of sound and music IDs]
 
*[https://docs.google.com/spreadsheets/d/1CpDrw23peQiq-C7F2FjYOMePaYe0Rc9BwQsj3h6sjyo/edit#gid=239695361 List of sound and music IDs]
 
* [https://gist.github.com/Pathoschild/95efc5ba5a23dc2c4da219ca2ddde679 JavaScript to parse an event precondition string]
 
* [https://gist.github.com/Pathoschild/95efc5ba5a23dc2c4da219ca2ddde679 JavaScript to parse an event precondition string]
 +
* [https://gist.github.com/Pathoschild/4e0af42158583983a4206d4d734bfc0b LINQ script] to format an event for [[Modding:Modder Guide/APIs/Translation| translations (i18n)]]
    
[[Category:Modding]]
 
[[Category:Modding]]
    
[[pt:Modificações:Dados de Eventos]]
 
[[pt:Modificações:Dados de Eventos]]
 +
[[ru:Модификации:События]]
3

edits

Navigation menu