Denizen/Types of Scripts
In Denizen, there are multiple different types of scripts each made to fill a different purpose. When writing a script, you will need to use several of these, so they're important to know!
(Note: Page under construction! There's a lot more than just what's listed here!)
Types: interact, book, item, entity, task, assignment, procedure, world, format, inventory
Also: All the example scripts on this page work together...
To see them all work, add them all to your server and assign "MyAssignmentScript" to an NPC, then right-click it.
Assignment Script
MyAssignmentScript:
type: assignment
actions:
on assignment:
- chat "I has been assigned!"
- trigger name:proximity state:true
The assignment script is the first script any NPC needs - it lists everything the NPC does!
One of the most important uses is the "on assignment:" action, which is run when the script is assigned to an NPC, in which you normally enable triggers, and run other important commands.
You can link interact scripts by adding:
Interact Scripts:
- 10 MyInteractScript
Interact Scripts
MyInteractScript:
type: Interact
Steps:
'1':
Proximity trigger:
Entry:
Script:
- chat "Hi there, <player.name>!"
- run mytask
Interact scripts control what the NPC does when a player fires triggers such as proximity, click, chat, or damage.
Item Scripts
myitem:
type: item
material: wool:3
recipe:
- air|air|air
- dirt|wool|dirt
- air|air|air
Item scripts hold data on custom items.
World Scripts
formatybit:
type: world
events:
on formattybit command:
- narrate format:formatdemo "Hello, I'm a well-formatted narrate, caused by a world event '/formattybit' command!"
- determine fulfilled
World scripts run world events.
Task Scripts
mytask:
type: task
script:
- chat "Here, a book for you!"
- give myfancybook
Task scripts contain random scripts to be run by other scripts using the command - run (taskscriptname)
Book Scripts
myfancybook:
type: book
title: My Fancy Book
author: NotNotch
text:
- This is my book. There are many like it, but this one is mine!
- Many <n>new <n> lines!
- <p>Paragraphs, <p>too!
Book scripts hold information on a complex book item.
Each - line in the text: category is a new page.
After defining a book in a script, you can give it to a player in any runnable script using - give (bookname)
Format Scripts
formatdemo: type: format format: "<&f>[<&b>Message<&f>- <&2><text><&f>]"
CommandScripts
my custom command: type: command name: formatbit script: - narrate format:formatdemo "Hello, I'm a well-formatted narrate, caused by a command script '/formatbit' command!"
World scripts run world events.