Denizen/0.7/Interact Scripts/Commands: Difference between revisions

From Citizens Wiki
No edit summary
 
(97 intermediate revisions by 5 users not shown)
Line 1: Line 1:
== Interact Script Commands ==
 
For more up-to-date information and full details on specific features (individual commands or tags, for example), check the [https://meta.denizenscript.com/ Meta Documentation].
 
If you want a full tutorial to help get you set up, check out the [https://guide.denizenscript.com/ Beginner's Guide] text website.
 
If you need quick help, visit our [https://discord.gg/Q6pZGSR Discord group].
 
<br><br><br>
 
<span style="font-family:natalya-alternate-one; font-size:300%; margin-right:-7px; margin-left:-10px;">This wiki is outdated, please view the tutorial videos/guide, meta documentation, or Discord group (all linked above) for up-to-date information!</span>
 
<br><br><br>
 
 
 
 
 
 
 
 
 
<div style="margin-right:2.0em; padding:10px; font-family:museo-sans; font-size:110%;">
<div style="margin-right:2.0em; padding:10px; font-family:museo-sans; font-size:110%;">
Note: There are plenty more to come, be patient, more are coming! Have ideas for a good command? Let me know!
Interact Script Commands are used to make the Denizen perform actions in an Interact Script. They are written in a [[YAML]] sequence under the Script node of an [[Denizen/Interact_Scripts/Triggers|Interact Trigger]]. A single entry in the sequence contains a Command and Modifiers. Some commands have no available modifiers.


<code>[] indicates required field, () indicates an optional field, OR indicates alternative usage.</code>
</div>
</div>


====Script Flow Commands====
===Syntax===
<div style="margin-right:2.0em; padding:10px; font-family:museo-sans; font-size:110%;">
Syntax is very important for proper execution.
These commands have no external affect on the world, but can control the flow of scripts within Denizen. Though not required, and with the exception of <tt>WAIT</tt>, it is generally recommended to run these as <tt>Instant Commands</tt> to ensure smooth Script feedback to players.
*Placing a caret ^ in front of the command name causes that command to ignore the normal 0.5 second delay between commands.
*The command must be upper-case (i.e CHAT not chat)
*Modifiers are not case sensitive.
*Modifiers in '''[Brackets]''' are '''required''' for the command to execute. [A or B] means ''either'' A or B is required.
*Modifiers in '''(Parentheses)''' are optional, and generally change the default behavior of the command.
*Modifiers that take a value are of the form MODIFIER:VALUE.
**If the VALUE of the modifier contains a space, such as in the case of a NPC or script name, the whole modifier must be put in quotes.
::Example: <code>- TELEPORT BOOKMARK:Bob:Bobshouse</code> is okay, but <code>- TELEPORT 'BOOKMARK:Bob Jones:Bobshouse'</code> requires the quotes to function properly.
 
Example:
<pre>
Some Trigger:
  Script:
  - COMMAND1 MODIFIER1 MODIFIER2:VALUE
  - COMMAND2 'MODIFIER1:Value With Spaces'
  - ^COMMAND3 'This will run instantly after COMMAND2'
</pre>
 
===List of Commands===
====Script Flow====
<div style="font-family:museo-sans;">
These commands have no external effect on the world, but can control the flow of scripts within Denizen. Though not required, and with the exception of <tt>WAIT</tt>, it is generally recommended to run these as <tt>Instant Commands</tt> to ensure smooth Script feedback to players.
 
{{Denizen Command Color 2|mintcream|
CANCELTASK
|['SCRIPT:Name of Script']
|Cancels a task that has been scheduled for the interacting player using RUNTASK DELAY
'''Example Usages'''
<pre>
- CANCELTASK SCRIPT:RaceEnd
</pre>
}}
 
{{Denizen Command Color 2|mintcream|
COOLDOWN
|[# or DURATION:#] (GLOBAL) ('SCRIPT:Name of Script')
|Sets a cooldown period for this script. Defaults to the currently running script and the interacting player. Until the script has cooled down, it will not be selected to run again. Requires a number of seconds to be specified with or without the DURATION: modifier name.
Modifiers:
*GLOBAL makes the script unavailable to everyone, instead of just the interacting player.
*SCRIPT: Sets the cooldown a different script.
'''Example Usages'''
<pre>
- COOLDOWN 60
- COOLDOWN GLOBAL 100
- COOLDOWN 'SCRIPT:A Different Script' 600
- COOLDOWN DURATION:15
</pre>
}}
 
{{Denizen Command Color 2|mintcream|
DISENGAGE
|(NPCID:#)
|<p>Allowed an <tt>ENGAGED</tt> Denizen to be interacted with again, the counterpart to the <tt>ENGAGE</tt> command. Can also specify the NPCID of a different Denizen</p>
'''Example Usages'''
<pre>
- ENGAGE
- (Other Commands)
- DISENGAGE
 
- DISENGAGE NPCID:7
</pre>
}}


{{Denizen Command Color 2|mintcream|
{{Denizen Command Color 2|mintcream|
ENGAGE
ENGAGE
|DURATION:[#]) (NPCID:[#])
|(DURATION:#) (NPCID:#)
| <p>Blocks player interaction from triggering the NPC. This may be useful if a long script required the player to listen or watch a series of events and you didn't want the Player to be able to interact while these commands were being taken out. Use with either a <tt>DURATION</tt> or <tt>DISENGAGE</tt>. <tt>DURATION</tt> will automatically <tt>DISENGAGE</tt> after the specified amount of seconds. If no <code>NPCID</code> is included, the Denizen triggered is used. Remember: While <tt>ENGAGED</tt>, no scripts will trigger, so be diligent in using!</p>
| <p>Blocks player interaction from triggering the NPC. This may be useful if a long script required the player to listen or watch a series of events and you didn't want the Player to be able to interact while these commands were being taken out. Use with either a <tt>DURATION</tt> or <tt>DISENGAGE</tt>. <tt>DURATION</tt> will automatically <tt>DISENGAGE</tt> after the specified amount of seconds. If no <code>NPCID</code> is included, the Denizen triggered is used. Remember: While <tt>ENGAGED</tt>, no scripts will trigger, so be diligent in using!</p>
'''Example Usages'''
'''Example Usages'''
<pre>- ENGAGE
<pre>
- ENGAGE DURATION:12 NPCID:3
- ENGAGE
- (Other Commands)
- DISENGAGE
 
- ENGAGE DURATION:12  
- ENGAGE NPCID:2</pre>
- ENGAGE NPCID:2</pre>
}}
}}
{{Denizen Command Color 2|mintcream|
{{Denizen Command Color 2|mintcream|
DISENGAGE
FAIL
|(NPCID:[#])
|('SCRIPT:Name of Script')
| <p>Allowed an <tt>ENGAGED</tt> Denizen to be interacted with again, the counterpart to the <tt>ENGAGE</tt> command. Can also specify the NPCID of a different Denizen</p>
| <p>Marks a script as 'Failed' to check against with the <tt>FAILED</tt> requirement. This is identical to the <tt>FINISH</tt> command, except keeps track of 'fails' instead. Again, this is kind of like a built-in flag for scripts, and acts much like a Counter, ie. You can <tt>FAIL</tt> a script multiple times and it will keep track of the total number, unless <tt>RESET</tt>. Note: A script can be both 'finished' and 'failed', the two commands work independently.</p>
}}
{{Denizen Command Color 2|mintcream|
ZAP
|([Step #])&nbsp;('SCRIPT:[Name of Script]')&nbsp;(DURATION:[#])&nbsp;('RANDOM:[#] (#)')
| <p>A very powerful command, indeed. This is how Scripts progress through their steps. It is not done automatically, instead, you get to decide how to progress. ZAP used alone will simply progress the Player to the next step in the Script. Note: Denizen does not check whether the step exists, so you can use that to your advantage in an Overlay Script Assignment. If an Integer is used, that step will be used.</p>
<p>Specify a <tt>SCRIPT</tt> to change the active step for a Player in a specific Script. If not specified, the triggering Script is used. A <tt>DURATION</tt> can be set to provide an automatic "DEZAP" of sorts, reverting the step back after a specific amount of seconds, unless, in that duration another ZAP command has taken place. This can be used as a 'timeout' of sorts. <tt>RANDOM</tt> can be used to let chance select the step to progress the Player to. If one Integer is included, steps 1 through the chosen number will be randomly selected. You can also use a range of numbers if two Integers are used.</p>
'''Example Usages'''
'''Example Usages'''
<pre>- ZAP
<pre>- FAIL
- ZAP 'RANDOM:3 6' DURATION:60
- FAIL 'SCRIPT:Magic Feathers'</pre>
- ZAP 'SCRIPT:Another Script' 6</pre>
}}
}}
{{Denizen Command Color 2|mintcream|
{{Denizen Command Color 2|mintcream|
WAIT
FINISH
|[# of Seconds]&nbsp;&nbsp;(QUEUE:TASK<nowiki>|</nowiki>TRIGGER)
|('SCRIPT:Name of Script')
| <p>Pauses a Queue for a specified amount of seconds. If no <tt>QUEUE</tt> is specified, the sending queue is used. For example, if the command is sent from an Interact (Triggered) Script, the queue that will be held is the 'Trigger Queue'. Could be useful in advanced usage situations when using both Task Scripts and Interact Scripts together.</p>
| <p>Marks a script as 'Finished' to check against with the <tt>FINISHED</tt> requirement. This is kind of like a built-in flag for scripts, and acts much like a Counter, ie. You can <tt>FINISH</tt> a script multiple times and it will keep track of the total number, unless <tt>RESET</tt>.</p>
'''Example Usages'''
'''Example Usages'''
<pre>- WAIT 6
<pre>- FINISH
- WAIT 30 QUEUE:TASK</pre>
- FINISH 'SCRIPT:Another Script'</pre>
}}
}}
{{Denizen Command Color 2|mintcream|
{{Denizen Command Color 2|mintcream|
FLAG
FLAG
|<nowiki>'[Flag Name]'&nbsp;OR&nbsp;'[[Flag Name]:[Flag Value]]'&nbsp;OR&nbsp;[[Flag Name]:++|--]'&nbsp;(DURATION:[#])</nowiki>
|['Flag Name' or 'Flag Name:Flag Value' or 'Flag Name:++' or 'Flag Name:--'] (PLAYER or DENIZEN or GLOBAL) (DURATION:#)
| <p>Requires one of the above arguments. <tt>FLAG</tt> store variables, or 'flags', to a Player. This can be used to keep track of information that can be check against with the FLAGGED requirement. Usage of the command is easy, and can be used in 3 different ways. A Boolean (true/false) value can be set with only a flag name. If set, the value is <tt>TRUE</tt>. When <tt>RESET</tt>, it is <tt>FALSE</tt>. <tt>FLAG</tt> can also set Integer (or number) variables, and easily increment or decrease them with the use of the <tt>++</tt> and <tt>--</tt> arguments accordingly. The command can also store a String value, see the example below. Using a <tt>DURATION</tt> will revert the value of the flag to the previous value, if during the duration the flag has not changed.</p>
| <p>Requires one of the above arguments. <tt>FLAG</tt> stores variables, or 'flags', by default to a Player. This can be used to keep track of information that can be check against with the FLAGGED requirement. Usage of the command is easy, and can be used in 3 different ways. A Boolean (true/false) value can be set with only a flag name. If set, the value is <tt>TRUE</tt>. When <tt>RESET</tt>, it is <tt>FALSE</tt>. <tt>FLAG</tt> can also set Integer (or number) variables, and easily increment or decrease them with the use of the <tt>++</tt> and <tt>--</tt> arguments accordingly. The command can also store a String value, see the example below. Using a <tt>DURATION</tt> will revert the value of the flag to the previous value, if during the duration the flag has not changed. Using the PLAYER modifier will set the flag on the Player (which is the default behavior). Using the DENIZEN modifier will set a flag on the Denizen instead of the Player. Using the GLOBAL modifier will set a flag independent of a Player or Denizen.</p>
'''Example Usages'''
'''Example Usages'''
<pre>- FLAG 'Sample Boolean Flag'
<pre>- FLAG 'Sample Boolean Flag'
Line 51: Line 131:
- FLAG Alignment:--
- FLAG Alignment:--
- FLAG 'Active Item:60 Feathers'
- FLAG 'Active Item:60 Feathers'
- FLAG WorldBossDead GLOBAL
- FLAG HasHealingFlag DURATION:180
- FLAG HasHealingFlag DURATION:180
</pre>
</pre>
}}
}}
{{Denizen Command Color 2|mintcream|
{{Denizen Command Color 2|mintcream|
FINISH
IF
|('SCRIPT:[Name of Script]')
|(EXACTLY) (PLAYER or DENIZEN or GLOBAL) (-)[FLAG:Name or FLAG:Name:Value] (IS_NUMBER) ['SCRIPT:Script Run When Condition Met'] (QUEUE:TRIGGER or QUEUE:TASK) (APPEND) (ELSE 'SCRIPT:Script Run When Condition Not Met')
| <p>Marks a script as 'Finished' to check against with the <tt>FINISHED</tt> requirement. This is kind of like a built-in flag for scripts, and acts much like a Counter, ie. You can <tt>FINISH</tt> a script multiple times and it will keep track of the total number, unless <tt>RESET</tt>.</p>
|Checks the value of a FLAG and runs a TASK script if the condition is met. By default the TASK script will run before the interact script continues.
Modifiers:
*EXACTLY - For integer flags, the IF condition is met only if the value matches exactly. By default, the condition is met if the flag's value is greater than or equal to the value it is checked against, i.e. IF 'FLAG:AGE:13' will pass for any AGE that is at least 13, but IF EXACTLY 'FLAG:AGE:13' will only pass if the AGE is 13.
*PLAYER - Check a flag set on this Player (which is the default behavior)
*DENIZEN - Check a DENIZEN flag set on the Denizen itself instead of a flag on this Player
*GLOBAL - Check a GLOBAL flag instead of a flag on this Player
*IS_NUMBER - The IF condition is met only if the value of the flag is an integer or double.
*APPEND - Runs the TASK after this script completes, instead of before the next command.
*QUEUE - Specify which queue to run the commands in, defaults to the executing queue type.
*ELSE - Choose a TASK script to run when the IF condition is not met.
'''Example Usages'''
'''Example Usages'''
<pre>- FINISH
<pre>
- FINISH 'SCRIPT:Another Script'</pre>
- IF FLAG:BossDead SCRIPT:Reward APPEND
- IF EXACTLY FLAG:Stage:4 SCRIPT:Stage4Instructions
- IF 'FLAG:AGE:13' 'SCRIPT:Meets Minimum Age' ELSE 'SCRIPT:Does Not Meet Minimum Age'
</pre>
}}
}}
{{Denizen Command Color 2|mintcream|
{{Denizen Command Color 2|mintcream|
FAIL
RANDOM
|('SCRIPT:[Name of Script]')
|[#]
| <p>Marks a script as 'Failed' to check against with the <tt>FAILED</tt> requirement. This is identical to the <tt>FINISH</tt> command, except keeps track of 'fails' instead. Again, this is kind of like a built-in flag for scripts, and acts much like a Counter, ie. You can <tt>FAIL</tt> a script multiple times and it will keep track of the total number, unless <tt>RESET</tt>. Note: A script can be both 'finished' and 'failed', the two commands work independently.</p>
|Selects a single command to run from the next # lines in the script and discards the rest.
'''Example Usages'''
'''Example Usages'''
<pre>- FAIL
<pre>
- FAIL 'SCRIPT:Magic Feathers'</pre>
- CHAT "I'm going to say the name of an animal"
- RANDOM 3
- CHAT "Cow"
- CHAT "Zebra"
- CHAT "Elephant"
- CHAT "Wasn't that fun?"
</pre>
}}
}}
{{Denizen Command Color 2|mintcream|
{{Denizen Command Color 2|mintcream|
RESET
RESET
|('SCRIPT:[Name of Script]')
|[FINISHED or FAILED or FLAG:FlagName] ('SCRIPT:Name of Script')
| <p>Sets either FINISHED or FAILED of the specified script to False. Remember: Script names are case sensitive!</p>
| <p>Sets the FINISHED or FAILED count of the specified script to 0, or sets the specified boolean flag to False. Remember: Script and Flag names are case sensitive!</p>
'''Example Usages'''
<pre>
- RESET FINISHED 'SCRIPT:Magic Feathers'
- RESET FLAG:SomeFlag
</pre>
}}
 
{{Denizen Command Color 2|mintcream|
RUNTASK
|['SCRIPT:Name of Script'] (DELAY:#) (NPCID:#)
|Runs a TASK script as the Denizen on the interacting player.
Modifiers:
*DELAY waits this number of seconds before running the task. specific to the interacting player. If this task is already pending for this player, it is canceled and re-applied with the new delay.
*NPCID runs the task as a different Denizen.
'''Example Usages'''
'''Example Usages'''
<pre>- FAIL
<pre>
- RESET FINISHED 'SCRIPT:Magic Feathers'</pre>
- RUNTASK 'SCRIPT:Apple Reward'
- RUNTASK SCRIPT:RaceEnd DELAY:60
</pre>
}}
 
{{Denizen Command Color 2|mintcream|
WAIT
|[# of Seconds] (QUEUE:TASK) (QUEUE:TRIGGER)
| <p>Pauses a Queue for a specified amount of seconds. If no <tt>QUEUE</tt> is specified, the sending queue is used. For example, if the command is sent from an Interact (Triggered) Script, the queue that will be held is the 'Trigger Queue'. Could be useful in advanced usage situations when using both Task Scripts and Interact Scripts together.</p>
'''Example Usages'''
<pre>- WAIT 6
- WAIT 30 QUEUE:TASK</pre>
}}
 
{{Denizen Command Color 2|mintcream|
ZAP
|(Step #) ('SCRIPT:Name of Script') (DURATION:#) (RANDOM:#-#)
| <p>A very powerful command, indeed. This is how Scripts progress through their steps. It is not done automatically, instead, you get to decide how to progress. ZAP used alone will simply progress the Player to the next step in the Script. Note: Denizen does not check whether the step exists, so you can use that to your advantage in an Overlay Script Assignment. If an Integer is used, that step will be used.</p>
<p>Specify a <tt>SCRIPT</tt> to change the active step for a Player in a specific Script. If not specified, the triggering Script is used. A <tt>DURATION</tt> can be set to provide an automatic "DEZAP" of sorts, reverting the step back after a specific amount of seconds, unless, in that duration another ZAP command has taken place. This can be used as a 'timeout' of sorts. <tt>RANDOM</tt> can be used to let chance select the step to progress the Player to. If one Integer is included, steps 1 through the chosen number will be randomly selected. You can also use a range of numbers if two Integers are used.</p>
'''Example Usages'''
<pre>
- ZAP
- ZAP 5
- ZAP RANDOM:6
- ZAP RANDOM:3-6 DURATION:60
- ZAP 6 'SCRIPT:Another Script'
</pre>
}}
}}
</div>
</div>


====Server Commands====
====Server====


{{Denizen Command Color 2|aliceblue|
{{Denizen Command Color 2|aliceblue|
EXECUTE
EXECUTE
| [ASPLAYER or ASSERVER or ASNPC] ["command and arguments"]
| [ASPLAYER or ASSERVER or ASNPC] ["command and arguments"]
| <p>Runs a Minecraft/Bukkit command. Specifying <tt>ASPLAYER, ASSERVER, or ASNPC</tt> defines how the command should be executed. ASNPC will run the command as the Denizen interacting, temporarily granting OP privileges, if the Denizen NPC is a Human-type NPC. Running ASSERVER will run as a console command, and running ASPLAYER will simply run the command as the Player. When specifying the command and arguments, it is not necessary to use the '/' that is generally used when running commands in-game. You may also use <PLAYER> and <WORLD> as variables inside the command arguments.</p>
| <p>Runs a Minecraft/Bukkit command. Specifying <tt>ASPLAYER, ASSERVER, or ASNPC</tt> defines how the command should be executed. ASNPC will run the command as the Denizen interacting, temporarily granting OP privileges, if the Denizen NPC is a Human-type NPC. Running ASSERVER will run as a console command, and running ASPLAYER will simply run the command as the Player. When specifying the command and arguments, it is not necessary to use the '/' that is generally used when running commands in-game. You may also use <PLAYER>, <WORLD>, or <NPCID> as variables inside the command arguments.</p>
'''Example Usages'''
'''Example Usages'''
<pre>EXECUTE ASSERVER 'gamemode <PLAYER> 2'
<pre>EXECUTE ASSERVER 'gamemode <PLAYER> 2'
Line 92: Line 234:
}}
}}


{{Denizen Command Color 2|aliceblue|
<div style="font-family:museo-sans; font-size:110%;">
WEATHER
 
| [SUNNY or STORMY or PRECIPITATING]  
The commands below require [[http://dev.bukkit.org/server-mods/vault/ Vault]] and a valid permissions system.
| Changes the Denizen's world's weather to the designated type.
</div>
 
{{Denizen Command Color 2| aliceblue|
PERMISS
|[permission.node or 'GROUP:Group Name'] (WORLD) ('WORLD:World Name')
|<p>Gives the Player either a permissions node or adds a group, if supported by your permissions system. Note: You should not include both a permissions node and a group. If you specify a <tt>WORLD</tt> argument, it will apply the permissions node/group only to the current world. You can alternatively specify a world with <tt>WORLD:worldName</tt>.</p>
'''Example Usages'''
'''Example Usages'''
<pre>
<pre>
WEATHER SUNNY
- PERMISS modifyworld.*
- PERMISS GROUP:HillsideEnemy
- PERMISS citizens.* WORLD:testworld
</pre>
</pre>
}}
}}


====Text Commands====
{{Denizen Command Color 2| aliceblue|
<div style="margin-right:2.0em; padding:10px; font-family:museo-sans; font-size:110%;">
REFUSE
These commands show some text to the player interacting, and usually to bystanders around. Note that all text commands must be surrounded by quotes single ' or double ". See: [[Which_Quotes|Which Quotes?]] for more information. Text commands also have some auto-formatting, such as making sure no words will be cut off on long messages, and applying color codes. See: [[Color_Codes|Denizen Color Codes]]. Formatting for how NPCs and Players talk can be customized in the [[config.yml]].
|[permission.node or 'GROUP:Group Name'] (WORLD) ('WORLD:World Name')
 
| Removes from the Player either a permissions node or a group, if supported by your permissions system. Note: You should not include both a permissions node and a group. If you specify a <tt>WORLD</tt> argument, it will remove the permissions node/group only to the current world. You can alternatively specify a world with <tt>WORLD:worldName</tt>. Generally, however you add your permissions or group with <tt>PERMISS</tt>, you should do the same when removing with <tt>REFUSE</tt>.
{{Denizen Command Color 2|lavender|
CHAT
|["The text to chat."] (NPCID:[#]) (NOPLAYER)
| Makes the Denizen talk to the player. This is the standard chat mechanism in Denizen. You can also change the NPC doing the talking by specifying a Denizen's C2 NPCID. If you would rather the Denizen NPC not speak to the Player directly, use the <tt>NOPLAYER</tt> argument.
'''Example Usages'''
'''Example Usages'''
<pre>
<pre>
- CHAT NOPLAYER "Here ye, hear ye!"
- REFUSE modifyworld.*
- CHAT "Hello there, children!"
- REFUSE GROUP:HillsideEnemy
- CHAT NPCID:6 'I only supply tools to builders!'
- REFUSE citizens.* WORLD:testworld
</pre>
</pre>
}}
}}
====Speech====
<div style="font-family:museo-sans;">
These commands show some text to the player interacting, and usually to bystanders around. Text commands also have some auto-formatting, such as making sure no words will be cut off on long messages, and applying color codes. See: [[Color_Codes|Denizen Color Codes]]. Formatting for how NPCs and Players talk can be customized in the [[Denizen/config.yml]].
*All Speech commands '''require quotes''' (single (' ') or double (" ")) around the text. If your text has an apostrophe (') in it, you '''MUST''' use double quotes (" ")!!
There are various placeholders you can use to fill in specific information. The basic ones are:
*<NPC> - The Denizens's name.
*<PLAYER> - The interacting Player's name
*<DISPLAYNAME> - The interacting Player's display name
*<HEALTH> - The interacting Player's heath
*<WORLD> - The name of the Denizen's world
If you use the NOPLAYER modifier on a text command the <PLAYER>, <DISPLAYNAME> and <HEALTH> tags are not available.
A list of all available placeholders can be found in [[Replaceables]].
{{Denizen Command Color 2|lavender|
{{Denizen Command Color 2|lavender|
WHISPER
ANNOUNCE
|["The text to whisper."] (NPCID:[#]) (NOPLAYER)
|['The text to announce.']
| Whispers the text to the player. Really just an alternative to CHAT. By default, bystanders can't hear what the NPC whispers to the interacting Player. As with the <tt>CHAT</tt> command, NPCID can be specified. Using NOPLAYER is possible too, since it may be of use in some circumstances. But remember: by default, no bystanders can see the actual text the NPC Denizen whispers. This can be changed in the [[config.yml]].
| Sends the text as a sever announcement to all players, regardless of their place in the world. Could be especially useful for any kind of administration script.
'''Example Usages'''
'''Example Usages'''
<pre>
<pre>
- WHISPER "The password is.. 42."
- ANNOUNCE "<PLAYER> has found a secret!"
- WHISPER NPCID:2 "Hey, I didn't want to blurt this out so everyone could hear, but..."
</pre>
</pre>
}}
}}
{{Denizen Command Color 2|lavender|
{{Denizen Command Color 2|lavender|
SHOUT
CHAT
|["The text to chat."] (NPCID:[#]) (NOPLAYER)
|["The text to chat."] (NPCID:#) (NOPLAYER)
| Shouts the text to players nearby. The range that a bystander can hear an NPC Denizen shout is larger then that of a standard <tt>CHAT</tt>, so it also has some technical advantages. <tt>NPCID</tt> can be specified. Using <tt>NOPLAYER</tt> will drop reference to the Player when talking. You can still reference <PLAYER>, however, if need be. See the example below for an idea for usage.
| Makes the Denizen talk to the player. This is the standard chat mechanism in Denizen. You can also change the NPC doing the talking by specifying a Denizen's C2 NPCID. If you would rather the Denizen NPC not speak to the Player directly, use the <tt>NOPLAYER</tt> argument.
'''Example Usages'''
'''Example Usages'''
<pre>
<pre>
- SHOUT "EEEK! a spider!"
- CHAT NOPLAYER "Here ye, hear ye!"
- SHOUT NOPLAYER "<PLAYER> is a thief! Get him!"
- CHAT "Hello there, children!"
- CHAT NPCID:6 'I only supply tools to builders!'
</pre>
</pre>
}}
}}
{{Denizen Command Color 2|lavender|
{{Denizen Command Color 2|lavender|
EMOTE  
EMOTE  
|['The text to emote.'] (NPCID:[#])
|['The text to emote.'] (NPCID:#)
| Let's the Denizen NPC show emotion. Similar to the /me command in IRC, for example. Could be useful for describing to the player what an NPC Denizen may need, or how the NPC Denizen is feeling. <tt>NPCID</tt> can be specified to change the Denizen NPC doing the  'emote'.
| Let's the Denizen NPC show emotion. Similar to the /me command in IRC, for example. Could be useful for describing to the player what an NPC Denizen may need, or how the NPC Denizen is feeling. <tt>NPCID</tt> can be specified to change the Denizen NPC doing the  'emote'.
'''Example Usages'''
'''Example Usages'''
Line 148: Line 313:
</pre>
</pre>
}}
}}
{{Denizen Command Color 2|lavender|
HINT
|(SHORT)
| If called from an Interact Script Step with a Chat Trigger, this will output a list of all possible things the player can say to activate a chat trigger.
Modifiers:
*SHORT
::The Denizen will only say the list of trigger words, instead of the full sentence.
'''Example Usages'''
<pre>
- HINT
- HINT SHORT
</pre>
}}
{{Denizen Command Color 2|lavender|
{{Denizen Command Color 2|lavender|
NARRATE
NARRATE
Line 157: Line 337:
</pre>
</pre>
}}
}}
{{Denizen Command Color 2|lavender|
{{Denizen Command Color 2|lavender|
ANNOUNCE
SHOUT
|['The text to announce.']
|["The text to chat."] (NPCID:#) (NOPLAYER)
| Sends the text as a sever announcement to all players, regardless of their place in the world. Could be especially useful for any kind of administration script.
| Shouts the text to players nearby. The range that a bystander can hear an NPC Denizen shout is larger then that of a standard <tt>CHAT</tt>, so it also has some technical advantages. <tt>NPCID</tt> can be specified. Using <tt>NOPLAYER</tt> will drop reference to the Player when talking. You can still reference <PLAYER>, however, if need be. See the example below for an idea for usage.
'''Example Usages'''
'''Example Usages'''
<pre>
<pre>
- ANNOUNCE "<PLAYER> has found a secret!"
- SHOUT "EEEK! a spider!"
- SHOUT NOPLAYER "<PLAYER> is a thief! Get him!"
</pre>
</pre>
}}
}}
{{Denizen Command Color 2|lavender|
{{Denizen Command Color 2|lavender|
HINT
WHISPER
|(SHORT)
|["The text to whisper."] (NPCID:#) (NOPLAYER)
| If called from an Interact Script Step with a Chat Trigger, this will output a list of all possible things the player can say to activate a chat trigger.
| Whispers the text to the player. Really just an alternative to CHAT. By default, bystanders can't hear what the NPC whispers to the interacting Player. As with the <tt>CHAT</tt> command, NPCID can be specified. Using NOPLAYER is possible too, since it may be of use in some circumstances. But remember: by default, no bystanders can see the actual text the NPC Denizen whispers. This can be changed in the [[config.yml]].
Modifiers:
*SHORT
::The Denizen will only say the list of trigger words, instead of the full sentence.
'''Example Usages'''
'''Example Usages'''
<pre>
<pre>
- HINT
- WHISPER "The password is.. 42."
- HINT SHORT
- WHISPER NPCID:2 "Hey, I didn't want to blurt this out so everyone could hear, but..."
</pre>
</pre>
}}
}}
</div>
</div>


====Denizen NPC Commands====
====Denizen Interaction====
Denizen NPC commands are meant to help bring your Denizen to life by allowing fine-control of small movements. These are not necessarily meant for making the Denizen NPC do large/long activities, those will instead be done by the [[Activity Engine]], which is just now starting to be implemented into Denizen. The next 'large' update will focus on Activities.
Denizen interaction commands are meant to help bring your Denizen to life by allowing fine control of movement and actions during scripts. These are not meant for making the Denizen do continuous movement and actions, that should instead be done via [[Denizen/Activity_Scripts/Activities|Activities]].
 
{{Denizen Command Color 2|mintcream|
HOLD
| [ID or ID:Data or MATERIAL or MATERIAL:Data]
| Makes the Denizen hold a specific block or item.
'''Example Usages'''
<pre>
- HOLD IRON_PICKAXE
- HOLD 98:3
</pre>
}}


{{Denizen Command Color 2|mintcream|
{{Denizen Command Color 2|mintcream|
LOOK
LOOK
|LOOK [[DIRECTION]|BOOKMARK:[BOOKMARK_NAME]|[CLOSE|AWAY]] (NPCID:[#]) (DURATION:[#])
|[DIRECTION or BOOKMARK:BookamrkName or 'BOOKMARK:Denizen Name:BookmarkName' or CLOSE or AWAY] (NPCID:#) (DURATION:#)
| <p>This command controls where the NPC Denizen is looking. It requires either a Direction, Bookmark, or look-close trait state. Valid directions: <tt>UP, DOWN, LEFT, RIGHT, NORTH, SOUTH, EAST, WEST, AT, and BACK</tt>. Looking <tt>AT</tt> or <tt>BACK</tt> takes the Player's position for reference. AT will look at the Player, <tt>BACK</tt> will look away from the player. Using <tt>CLOSE|AWAY</tt> will toggle the NPC's <tt>look-close trait</tt>. <tt>CLOSE</tt> will make the NPC's head follow the closest Player to it. You can toggle off this behavior by using <tt>AWAY</tt>, not to be confused with <tt>BACK</tt>. If you specify a Location Bookmark instead of a direction, the NPC will take the pitch and yaw from the information stored in the bookmark. Note: This does not affect the actual position of the NPC Denizen, only the head position. Using a <tt>DURATION</tt> argument will restore the previous head position after that amount of time. Note: The script queue will continue as normal, so if the NPC moves or uses another LOOK command in this duration, it may get glitchy. Either time your commands appropriately, or use a <tt>WAIT</tt> command to compensate. The optional argument <tt>NPCID</tt> will change the Denizen NPC doing the looking.  
| <p>This command controls where the NPC Denizen is looking. It requires either a Direction, Bookmark, or look-close trait state. Valid directions: <tt>UP, DOWN, LEFT, RIGHT, NORTH, SOUTH, EAST, WEST, AT, and BACK</tt>. Looking <tt>AT</tt> or <tt>BACK</tt> takes the Player's position for reference. AT will look at the Player, <tt>BACK</tt> will look away from the player. Using <tt>CLOSE|AWAY</tt> will toggle the NPC's <tt>look-close trait</tt>. <tt>CLOSE</tt> will make the NPC's head follow the closest Player to it. You can toggle off this behavior by using <tt>AWAY</tt>, not to be confused with <tt>BACK</tt>. If you specify a Location Bookmark instead of a direction, the NPC will take the pitch and yaw from the information stored in the bookmark. Note: This does not affect the actual position of the NPC Denizen, only the head position. Using a <tt>DURATION</tt> argument will restore the previous head position after that amount of time. Note: The script queue will continue as normal, so if the NPC moves or uses another LOOK command in this duration, it may get glitchy. Either time your commands appropriately, or use a <tt>WAIT</tt> command to compensate. The optional argument <tt>NPCID</tt> will change the Denizen NPC doing the looking.  
'''Example Usages'''
'''Example Usages'''
Line 194: Line 385:
}}
}}


<del>* FOLLOW [PLAYER|NOBODY]</del>
{{Denizen Command Color 2|mintcream|
<del></code>Makes the Denizen follow the player, or stop following the player.<code></del>
PAUSE
|(DURATION:#)
|Causes the Denizen to stop any pathing or activities. Useful for keeping it in place during an interaction.
Modifiers:
*DURATION:
::Automatically RESUME after the specified number of seconds.
'''Example Usages'''
<pre>
- PAUSE
- PAUSE DURATION:30
</pre>
}}


{{Denizen Command Color 2|mintcream|
{{Denizen Command Color 2|mintcream|
WALKTO
RESUME
|[LocationBookmark] or [ 'DenizenName:LocationBookmark'] or [PLAYER]
|
| Makes the denizen walk to the specified location bookmark, or to the interacting player.
|Cancels a previous PAUSE command.
'''Example Usages'''
'''Example Usages'''
- WALKTO PLAYER
<pre>
- WALKTO 'Gary:GarysHouse'
- RESUME
</pre>
}}
}}


{{Denizen Command Color 2|mintcream|
{{Denizen Command Color 2|mintcream|
RETURN
RETURN
|
|(SPEED:#)
| Makes the denizen walk back to the spot it was at before a call to WALKTO
|Makes the denizen walk back to the position it was at before a call to WALKTO or WALK. Will resume NPC pathing if set.
Modifiers:
* SPEED: is the movement speed, generally should be between 0.1 and 1.5
 
'''Example Usages'''
'''Example Usages'''
- WALKTO 'Somewhere'
<pre>
- WALKTO BOOKMARK:Somewhere
- RETURN
- RETURN
</pre>
}}
}}


* WALK [Z] [X] [Y]  Note: Z(-NORTH(2)/+SOUTH(0)) X(-WEST(1)/+EAST(3)) Y (+UP/-DOWN)
{{Denizen Command Color 2|mintcream|
*: </code>Makes the Denizen walk. This is not for making the Denizen to specific coordinates. The values for X Y and Z will get added or subtracted from the Denizen's current location.<code>
WALK
|(FORWARD:#) (NORTH:#) (SOUTH:#) (EAST:#) (WEST:#) (UP:#) (DOWN:#) (X:#) (Y:#) (Z:#) (SPEED:#)
|Makes the denizen walk some distance from its current position.  Interrupts any current movement, and pauses the NPC pathing if active. All provided directions are added into one movement. Decimal and negative values are accepted.  
Modifiers:
* SPEED: is the movement speed, generally should be between 0.1 and 1.5
* FORWARD: makes the Denizen walk in whatever direction it is currently facing. Combine LOOK CLOSE and a negative value to walk directly away from the player.
* +X is the same as EAST
* +Y is the same as UP
* +Z is the same as NORTH
'''Example Usages'''
<pre>
- WALK NORTH;4 EAST:2.5
- WALK FORWARD:1
</pre>
}}


<del> RESPAWN [Location Bookmark]
{{Denizen Command Color 2|mintcream|
*: </code>Despawns the Denizen and respawns it to a bookmarked location.<CODE>
WALKTO
Note: There is something funny going on with NPCs spawning to a location you are very near to. You sometimes have to back away before they show up. This seems to be an issue with Craftbukkit and/or Minecraft Server.</code> </del>
|[BOOKMARK:LocationBookmark or 'BOOKMARK:DenizenName:LocationBookmark' or PLAYER] (SPEED:#)
|Makes the denizen walk to the specified location bookmark, or to the interacting player. Interrupts any current movement, and pauses the NPC pathing if active.
Modifiers:
* SPEED: is the movement speed, generally should be between 0.1 and 1.5
'''Example Usages'''
<pre>
- WALKTO PLAYER
- WALKTO 'BOOKMARK:Gary:GarysHouse'
</pre>
}}


====Vault Commands====
====World Interaction====
<div style="margin-right:2.0em; padding:10px; font-family:museo-sans; font-size:110%;">
The commands below require Vault and a valid permissions and economy system. Though Vault is not required to use Denizen, the commands below DO require Vault and its dependencies to be installed. Remember: Vault is not an economy or permissions system, merely a hook to help Denizen connect to your favorite systems!


{{Denizen Command Color 2| whitesmoke|
{{Denizen Command Color 2|lightgoldenrodyellow|
PERMISS
DROP
|<nowiki>[permission.node]|['GROUP:group name'] (WORLD)|('WORLD:NAME')</nowiki>
| [ID or ID:Data or MATERIAL or MATERIAL:Data or XP] (QTY:#) (BOOKMARK:LocationBookmark)
| <p>Gives the Player either a permissions node or adds a group, if supported by your permissions system. Note: You should not include both a permissions node and a group. If you specify a <tt>WORLD</tt> argument, it will apply the permissions node/group only to the current world. You can alternatively specify a world with <tt>WORLD:worldName</tt>.</p>
| Drop an item at the Denizen's location, or at a location bookmark if one is specified.
'''Example Usages'''
'''Example Usages'''
<pre>
<pre>
- PERMISS modifyworld.*
- DROP DIAMOND QTY:3
- PERMISS GROUP:HillsideEnemy
- DROP 18:3 QTY:1 BOOKMARK:LargeTree
- PERMISS citizens.* WORLD:testworld
- DROP XP QTY:10
</pre>
</pre>
}}
}}
{{Denizen Command Color 2| whitesmoke|
 
REFUSE
{{Denizen Command Color 2|lightgoldenrodyellow|
|<nowiki>[permission.node]|['GROUP:group name'] (WORLD)|('WORLD:NAME')</nowiki>
LISTEN KILL
| Removes from the Player either a permissions node or a group, if supported by your permissions system. Note: You should not include both a permissions node and a group. If you specify a <tt>WORLD</tt> argument, it will remove the permissions node/group only to the current world. You can alternatively specify a world with <tt>WORLD:worldName</tt>. Generally, however you add your permissions or group with <tt>PERMISS</tt>, you should do the same when removing with <tt>REFUSE</tt>.
|[TYPE:GROUP or TYPE:PLAYER or TYPE:ENTITY or TYPE:NPC] [NAME:Name or NPCID:#] (QTY:#) [SCRIPT:Task Script] (ID:Name)
| This command starts the Denizen listening for the player to kill the specified number of specified targets, then runs a task script. Use the NAME:Name modifier when specifying a group name, player name, or [[Types|entity type]] (like 'ZOMBIE'). Use NPCID:# modifier when using TYPE:NPC.
Optional Modifiers:
*QTY: - The number things the player must kill before the script is run.
*ID: - The name of the kill listener; without it, the listener will take on the name of the script run upon completion.
'''Example Usages'''
'''Example Usages'''
<pre>
<pre>
- REFUSE modifyworld.*
- LISTEN KILL TYPE:ENTITY NAME:ZOMBIE QTY:5 SCRIPT:ZombieReward
- REFUSE GROUP:HillsideEnemy
- LISTEN KILL ID:BossListener TYPE:NPC NPCID:12 'SCRIPT:Kill Boss Reward'
- REFUSE citizens.* WORLD:testworld
</pre>
</pre>
}}
}}
</div>
====World Interaction Commands====
These commands do something physical to the world or player.


{{Denizen Command Color 2|wheat|
{{Denizen Command Color 2|lightgoldenrodyellow|
SWITCH
SPAWN
|[BOOKMARK:BlockBookmark] or [BOOKMARK:DenizenName:BlockBookmark]
|[ENTITY_TYPE] (QTY:#) (BOOKMARK:LocationBookmark) ('BOOKMARK:Denizen Name:LocationBookmark') (SPREAD:#) ('EFFECT:[POTION_EFFECT] [LEVEL]') ('OPTION:[OPTIONS]')
| This command will activate a button, switch or pressure plate at the designated '''block''' bookmark.
| Spawns a specified amount of entities. If the location bookmark is missing, they will spawn near the Denizen.
Modifiers:
Modifiers:
*DURATION:##
*SPREAD:[#] Increases the 'spread' of the area that the monster can spawn.
:: Will switch the button/lever back after the specified number of seconds.
*'EFFECT:[POTION_EFFECT] [LEVEL]' Applies a potion effect on the monster when spawning.
*'OPTION:OptionName OptionsValue' Applies a flag to the Mob. Note: Only works for mobs that can accept the flag.
** Valid OptionNames are:
***POWERED, SADDLED, BABY, 'PROFESSION [PROFESSION_TYPE]', SHEARED, 'COLORED [DYE_COLOR]', ANGRY')
****CREEPER can have POWERED
****PIG can have SADDLED
****PIG, SHEEP, COW, VILLAGER, CHICKEN, OCELOT and WOLF can have BABY
****VILLAGER can have PROFESSION
*****Valid PROFESSION_TYPEs: FARMER, LIBRARIAN, PRIEST, BLACKSMITH, BUTCHER
****SHEEP can have SHEARED and COLORED
****WOLF and PIG_ZOMBIE can have ANGRY
'''Example Usages'''
'''Example Usages'''
<pre>
<pre>
- SWITCH BOOKMARK:LightSwitch DURATION:30
- SPAWN BOAT
- SWITCH BOOKMARK:Jimbo:JimbosButton
- SPAWN QTY:3 COW BOOKMARK:Cage
- SPAWN VILLAGER 'BOOKMARK:El Notcho:Gate'
- SPAWN QTY:10 PIG_ZOMBIE SPREAD:5
- SPAWN QTY:25 ZOMBIE SPREAD:20 'EFFECT:INCREASE_DAMAGE 2'
- SPAWN QTY:2 SHEEP 'OPTION:COLORED RED'
</pre>
</pre>
}}
}}


 
{{Denizen Command Color 2|lightgoldenrodyellow|
 
* SPAWN [ENTITY_TYPE] [AMOUNT] (Location Bookmark)
*: <code>Spawns a specified amount of entities. If the location bookmark is missing, they will spawn near the Denizen.</CODE>
 
* TELEPORT [Denizen Name] OR [BOOKMARK:BookmarkName] OR ['BOOKMARK:Denizen Name:BookmarkName']
*: <code>Teleports the player interacting to a bookmark or Denizen/ </code>
 
{{Denizen Command Color 2|wheat|
STRIKE
STRIKE
|(DENIZEN) (LocationBookmark (NODAMAGE) (NPCID:#)
|(DENIZEN) (BOOKMARK:LocationBookmark) ('BOOKMARK:Denizen Name:LocationBookmark') (NODAMAGE) (NPCID:#)
|Lightning at your fingertips.
|Lightning at your fingertips.
Modifiers:
Modifiers:
Line 288: Line 522:
*NODAMAGE
*NODAMAGE
:: Lightning is cosmetic and does no damage.
:: Lightning is cosmetic and does no damage.
'''Example Usages'''
'''Example Usages'''
<pre>
<pre>
- STRIKE
- STRIKE
- STRIKE BOOKMARK:BigTree
- STRIKE DENIZEN NODAMAGE
- STRIKE DENIZEN NODAMAGE
</pre>
</pre>
}}
}}


====Player Interaction Commands====
{{Denizen Command Color 2|lightgoldenrodyellow|
SWITCH
|[BOOKMARK:BlockBookmark] or [BOOKMARK:DenizenName:BlockBookmark] (DURATION:#)
| This command will activate a button, switch or pressure plate at the designated '''block''' bookmark.
Modifiers:
*DURATION:#
:: Will switch the device again after the specified number of seconds.
'''Example Usages'''
<pre>
- SWITCH BOOKMARK:LightSwitch DURATION:30
- SWITCH BOOKMARK:Jimbo:JimbosButton
</pre>
}}
 
{{Denizen Command Color 2|lightgoldenrodyellow|
WEATHER
| [SUNNY or STORMY or PRECIPITATING]
| Changes the Denizen's world's weather to the designated type.
'''Example Usages'''
<pre>
- WEATHER SUNNY
</pre>
}}
 
====Player Interaction====
These commands default to affecting the interacting player. Most have modifiers to affect the executing Denizen instead.
 
{{Denizen Command Color 2|palegreen|
CAST
| [SpellName] (DURATION:#) (POWER:#) (NPC:#) (PLAYER:PlayerName)
| Gives the specified target a potion effect.  [[Alchemist#Valid_Effects | Valid potion names are the same as the Alchemist's.]]
Modifiers:
*DURATION:#
::The effect duration, in seconds. Default is 60.
*POWER:#
::The level of the effect, usually 1-5. Default is 1.
*NPC:#
::The NPC to cast the effect on, instead of the interacting player. Specify with the NPC id.
*PLAYER:PlayerName
::The Player to cast the effect on, instead of the interacting player.
'''Example Usages'''
<pre>
- CAST SPELL:confusion DURATION:300 POWER:3
- CAST SPELL:speed
</pre>
}}
 
{{Denizen Command Color 2|palegreen|
FEED
|(AMOUNT:#)
|Feeds the interacting player. Provides food and saturation.
Modifiers:
AMOUNT: The amount to feed. Default is 20.
'''Example Usages'''
<pre>
- FEED
- FEED 5
</pre>
}}
 
{{Denizen Command Color 2|palegreen|
{{Denizen Command Color 2|palegreen|
GIVE
GIVE
| [MONEY or ID or ID:Data or MATERIAL:Data or MATERIAL] (QTY:#)
|[MONEY or XP or HEROESEXP or ID or ID:Data or MATERIAL or MATERIAL:Data] (QTY:#)
|
|
Gives something to the Player. If QTY: is not specified default is 1.
Gives something to the Player. If QTY: is not specified, its default value is 1. You can also give Minecraft XP by using 'XP'.
 
Using HEROESEXP type will give the Player (or Hero) Questing Experience. Note: This requires HEROES to be installed on your server!
'''Example Usages'''
'''Example Usages'''
<pre>
<pre>
Line 308: Line 601:
- GIVE 17:2 QTY:3
- GIVE 17:2 QTY:3
- GIVE LEAVES:2
- GIVE LEAVES:2
- GIVE HEROESEXP QTY:25
</pre>
</pre>
}}
}}
{{Denizen Command Color 2|palegreen|
HARM
|(DENIZEN) (AMOUNT:#)
|Hurts the the interacting player.
Modifiers:
*DENIZEN
::Hurts the Denizen instead of the player.
*AMOUNT:
::The amount to hurt, if not specified defaults to 1 point.
'''Example Usages'''
<pre>
- HARM AMOUNT:5
- HARM DENIZEN
</pre>
}}
{{Denizen Command Color 2|palegreen|
HEAL
|(DENIZEN) (AMOUNT:#)
|Heals the interacting player.
Modifiers:
*DENIZEN
::Heals the Denizen instead of the player.
*AMOUNT:
::The amount to heal, will not heal beyond the maximum. Defaults to a full heal if not specified.
'''Example Usages'''
<pre>
- HEAL
- HEAL DENIZEN AMOUNT:1
</pre>
}}
{{Denizen Command Color 2|palegreen|
{{Denizen Command Color 2|palegreen|
TAKE  
TAKE  
| [MONEY or ITEMINHAND or ID or ID:Data or MATERIAL:Data or MATERIAL] (QTY:#)
| [MONEY or ITEMINHAND or ID or ID:Data or MATERIAL or MATERIAL:Data] (QTY:#)
|
|
Takes something from the Player. If QTY: is not specified default is 1.
Takes something from the Player. If QTY: is not specified, its default value is 1.


'''Example Usages'''
'''Example Usages'''
Line 326: Line 653:


{{Denizen Command Color 2|palegreen|
{{Denizen Command Color 2|palegreen|
CAST
TELEPORT
| [SpellName] (DURATION:#) (POWER:#) (NPC:#) (PLAYER:PlayerName)
|(DENIZEN) [BOOKMARK:LocationBookmark or 'BOOKMARK:Denizen Name:LocationBookmark']
| Gives the specified target a potion effect.  [[Alchemist#Valid_Effects | Valid potion names are the same as the Alchemist's.]]
|Teleports the interacting to player or denizen to the specified bookmark.
Modifiers:
Modifiers:
*DURATION:#
*DENIZEN
::The effect duration, in seconds. Default is 60.
::Teleport the Denizen instead of the player.
*POWER:#
::The level of the effect, usually 1-5. Default is 1.
*NPC:#
::The NPC to cast the effect on, instead of the interacting player. Specify with the NPC id.
*PLAYER:PlayerName
::The Player to cast the effect on, instead of the interacting player.
'''Example Usages'''
'''Example Usages'''
<pre>
<pre>
- CAST SPELL:confusion DURATION:300 POWER:3
- TELEPORT BOOKMARK:FarAwayPlace
- CAST SPELL:speed
- TELEPORT DENIZEN 'BOOKMARK:Jim:JimsBasement'
</pre>
</pre>
}}
}}
[[Category:Denizen 0.7]]

Latest revision as of 19:02, 3 September 2021

For more up-to-date information and full details on specific features (individual commands or tags, for example), check the Meta Documentation.

If you want a full tutorial to help get you set up, check out the Beginner's Guide text website.

If you need quick help, visit our Discord group.




This wiki is outdated, please view the tutorial videos/guide, meta documentation, or Discord group (all linked above) for up-to-date information!








Interact Script Commands are used to make the Denizen perform actions in an Interact Script. They are written in a YAML sequence under the Script node of an Interact Trigger. A single entry in the sequence contains a Command and Modifiers. Some commands have no available modifiers.

Syntax

Syntax is very important for proper execution.

  • Placing a caret ^ in front of the command name causes that command to ignore the normal 0.5 second delay between commands.
  • The command must be upper-case (i.e CHAT not chat)
  • Modifiers are not case sensitive.
  • Modifiers in [Brackets] are required for the command to execute. [A or B] means either A or B is required.
  • Modifiers in (Parentheses) are optional, and generally change the default behavior of the command.
  • Modifiers that take a value are of the form MODIFIER:VALUE.
    • If the VALUE of the modifier contains a space, such as in the case of a NPC or script name, the whole modifier must be put in quotes.
Example: - TELEPORT BOOKMARK:Bob:Bobshouse is okay, but - TELEPORT 'BOOKMARK:Bob Jones:Bobshouse' requires the quotes to function properly.

Example:

Some Trigger:
  Script:
  - COMMAND1 MODIFIER1 MODIFIER2:VALUE
  - COMMAND2 'MODIFIER1:Value With Spaces'
  - ^COMMAND3 'This will run instantly after COMMAND2'

List of Commands

Script Flow

These commands have no external effect on the world, but can control the flow of scripts within Denizen. Though not required, and with the exception of WAIT, it is generally recommended to run these as Instant Commands to ensure smooth Script feedback to players.

Server

The commands below require [Vault] and a valid permissions system.

Speech

These commands show some text to the player interacting, and usually to bystanders around. Text commands also have some auto-formatting, such as making sure no words will be cut off on long messages, and applying color codes. See: Denizen Color Codes. Formatting for how NPCs and Players talk can be customized in the Denizen/config.yml.

  • All Speech commands require quotes (single (' ') or double (" ")) around the text. If your text has an apostrophe (') in it, you MUST use double quotes (" ")!!

There are various placeholders you can use to fill in specific information. The basic ones are:

  • <NPC> - The Denizens's name.
  • <PLAYER> - The interacting Player's name
  • <DISPLAYNAME> - The interacting Player's display name
  • <HEALTH> - The interacting Player's heath
  • <WORLD> - The name of the Denizen's world

If you use the NOPLAYER modifier on a text command the <PLAYER>, <DISPLAYNAME> and <HEALTH> tags are not available.

A list of all available placeholders can be found in Replaceables.

Denizen Interaction

Denizen interaction commands are meant to help bring your Denizen to life by allowing fine control of movement and actions during scripts. These are not meant for making the Denizen do continuous movement and actions, that should instead be done via Activities.

World Interaction

Player Interaction

These commands default to affecting the interacting player. Most have modifiers to affect the executing Denizen instead.