Changes

m
Line 74: Line 74:  
|-
 
|-
 
| <samp>B</samp>
 
| <samp>B</samp>
| Current player is in bed.
+
| Current player has a double bed in the farmhouse if married; single bed if roommates (Krobus excluded).
 
|-
 
|-
 
| <samp>D {{t|name}}</samp>
 
| <samp>D {{t|name}}</samp>
Line 95: Line 95:  
|-
 
|-
 
| <samp>a {{t|x}} {{t|y}}</samp>
 
| <samp>a {{t|x}} {{t|y}}</samp>
| Current player is 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.
+
| 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.
 
|-
 
|-
 
| <samp>b {{t|number}}</samp>
 
| <samp>b {{t|number}}</samp>
Line 106: Line 106:  
| 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:  
 
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.
+
''/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.
 
|-
 
|-
 
| <samp>f {{t|name}} {{t|number}}</samp>
 
| <samp>f {{t|name}} {{t|number}}</samp>
Line 223: Line 223:  
|-
 
|-
 
| <samp>addConversationTopic {{t|ID}} {{o|length}}</samp>
 
| <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.
 
|-
 
|-
 
| <samp>addCookingRecipe {{t|recipe}}</samp>
 
| <samp>addCookingRecipe {{t|recipe}}</samp>
Line 259: Line 259:  
|-
 
|-
 
| <samp>advancedMove {{t|actor}} {{t|loop}} {{t|x y}}... OR {{t|direction duration}}</samp>
 
| <samp>advancedMove {{t|actor}} {{t|loop}} {{t|x y}}... OR {{t|direction duration}}</samp>
| Set multiple movements for an actor.  You can set True to have the actor walk the path continuously. Example: <samp>/advancedMove Robin false 0 3 2 0 0 2 -2 0 0 -2 2 0/</samp>
+
| 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, <samp>-3 0</samp> will cause the actor to walk three tiles to the left while facing left. <samp>2 0</samp> will cause the actor to walk two tiles to the right while facing right.
+
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, <samp>0 1</samp> will cause the actor to walk one tile down while facing down. <samp>0 -5</samp> will cause the actor to walk five tiles up while facing up.
+
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.
 
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.
Line 269: Line 269:  
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.
 
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: <samp>/advancedMove Clint true 4 0 2 5000 -4 0 1 3000</samp> 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 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: <samp>advancedMove Pam true 5 0 0 3 3 5000 -6 0 0 -4</samp> 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.
+
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.
 
|-
 
|-
 
| <samp>ambientLight {{t|r}} {{t|g}} {{t|b}}</samp>
 
| <samp>ambientLight {{t|r}} {{t|g}} {{t|b}}</samp>
Line 345: Line 345:  
|-
 
|-
 
| <samp>emote {{t|actor}} {{t|emote ID}}</samp>
 
| <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 <samp>Content\TileSheets\emotes.xnb</samp> (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]].
 
|-
 
|-
 
| <samp>end</samp>
 
| <samp>end</samp>
Line 431: Line 431:  
| Make everyone stop.
 
| Make everyone stop.
 
|-
 
|-
| <samp>hideShadow <actor> <true/false></samp>
+
| <samp>hideShadow {{t|actor}} {{t|true/false}}</samp>
 
| Hide the shadow of the named actor. False unhides it.
 
| Hide the shadow of the named actor. False unhides it.
 
|-
 
|-
Line 441: Line 441:  
|-
 
|-
 
| <samp>ignoreEventTileOffset</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.
+
| 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.
 
|-
 
|-
 
| <samp>itemAboveHead {{o|type}}</samp>
 
| <samp>itemAboveHead {{o|type}}</samp>
Line 468: Line 468:  
|-
 
|-
 
| <samp>move {{t|actor}} {{t|x}} {{t|y}} {{t|facing}} {{t|continue}}</samp>
 
| <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.
+
| 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.
    
|-
 
|-
Line 533: Line 533:  
| Shake the named NPC for the given number of milliseconds.
 
| Shake the named NPC for the given number of milliseconds.
 
|-
 
|-
| <samp>showFrame farmer flip</samp>
+
| <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.
 
|-
 
|-
 
| <samp>showFrame {{t|actor}} {{t|frame ID}}</samp>
 
| <samp>showFrame {{t|actor}} {{t|frame ID}}</samp>
Line 609: Line 609:  
|-
 
|-
 
| <samp>viewport move {{t|x}} {{t|y}} {{t|duration}}</samp>
 
| <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.
 
|-
 
|-
 
| <samp>viewport {{t|x}} {{t|y}} [true [unfreeze]&#124;clamp [true&#124;unfreeze]]</samp>
 
| <samp>viewport {{t|x}} {{t|y}} [true [unfreeze]&#124;clamp [true&#124;unfreeze]]</samp>
Line 640: Line 640:  
|}
 
|}
   −
If a command begins with the two characters '--', it is ignored. This can be used to insert comments or to disable commands temporarily while debugging an event.
+
===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 725: 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==
3

edits