Beginner DragonSpeak Tutorial

What is Dragonspeak?

Dragonspeak (DS for short) is a unique, but simple scripting language you can use to be able to create special effects for your Dream.

In other words, DS makes things happen. You can make things appear and disappear, make tricks and puzzles, play cool sound effects, and pretty much any random thing you can think of, like have a hundred rainbows pop up when someone finally finds the magic unicorn! ;)

What happens in your Dream with DS can range from the more practical, like letting people walk through doors or having emits appear on the chat screen... Or the more complex if you want, like keeping full RPG stats for the people who interact with you Dream.

But more importantly? You don't have to be a programmer or a rocket scientist or a Super Genius to add DS to your Dream. DS reads like a story, making it easy to learn for people of all skill levels since each line sounds like part of a sentence. If you follow these instructions you'll be making neat things happen in your Dream in just a few minutes!

Tutorial 1: How to add simple DragonSpeak to your Dream

Before we can add DS, we need to have a Dream map of some kind to work with.

If you need help with this, here you can find a tutorial for making a Dream (what we call Dreamweaving in Furcadia), and another tutorial here on how to use the Dream Editor. We will reference the terminology used in the Dream Editor tutorial, so look at that first if you're confused here!

Once you save your very own Dream, it will automatically come with a DragonSpeak (DS) file.

You can open the DragonSpeak editor (called the DragonSpeak Constructor) within the Dream Editor itself, by going to the menu DragonSpeak, and then clicking Run DragonSpeak editor.

Once you've done that, you should see the default DS file, which will look something like this:

Here are those DS lines in text form:

DSPK V04.00 Furcadia
(0:9) When a furre arrives in the dream,
(5:15) move the triggering furre to (10,10), or to someplace nearby if it's occupied.
*Endtriggers* 8888 *Endtriggers*

These lines are all necessary to keep in your DS file. You need to have someone arrive somewhere when they come in your Dream, so that should stay. You also shouldn't remove the opening and closing lines, either. But, you can have as many lines as you want in the middle! We’ll do that in a bit, but first let’s explain a bit about how DS works.

Basically, each Dream that you create can have a script to control what kinds of special things happen there. DS is based on a series of causes and effects. When you put a cause and an effect together, you've made what we call a trigger. You can have as many different triggers as you want; it just depends how many things you want to have happening on your map. You should probably start out with just a few simple things to get the hang of it, then you can put in as many as you like!

The simplest kind of trigger has just one cause and one effect. The causes are the lines where the first number in the parenthesis is 0. Effects always have a 5 at the beginning.

Let's try a quick example. Copy and paste these two lines into your DS file, underneath the default lines, but above where it says Endtriggers:

(0:1) Whenever somebody moves,
(5:8) play sound # to whoever set off the trigger.

Now move the cursor to the # after the word sound. Delete the # and replace it with 32. It should look like this:

(0:1) Whenever somebody moves,
(5:8) play sound 32 to whoever set off the trigger.

Go to the File menu and select Save. Then once you run Furcadia, you can go upload your Dream somewhere. Once you enter the Dream and walk around, you should hear a sound effect every time you take a step.

Congratulations, you just made your first DragonSpeak trigger! That's all there is to it!

You can also try playing around with different sounds if you like. Change the 32 to 22 and see what that sounds like. You can even try other numbers, any from 1 to 100. You need to save the file after you change it and re-upload your Dream before you can hear the changes you made.

Tip: You can test out different sounds in the Tools menu of the DS Editor, under Tools > Sound Preview.

Tutorial 2: Working with Floors in DS

What else can you do with DragonSpeak? Maybe you've already looked at some of the other causes and effects and thought about what they do. You can often tell just by reading them, especially if you've already been weaving Dreams for awhile and are familiar with Floors and Items.

If you want to, you can even just try some of the effects out and see what they do on your own! This isn't like monkeying with the controls of a nuclear reactor. DragonSpeak was designed so that nothing you do can possibly hurt your computer, even if you make a mistake.

The worst that should happen is that it won't do exactly what you want, or maybe won't do anything at all. You don't have to worry about ruining the nice Dream you wove either, because even if DragonSpeak changes things, the Dream Editor saves the map independently and will put them back the way they were before.

The tricky part of figuring out most of the causes and effects is figuring out what numbers (the # sign) the DS lines are asking for. Let's say for instance the cause

(0:2) When somebody moves into floor type #,

caught your eye, and you wanted to use it to make a special magic carpet square that plays a sound effect whenever anyone steps on it.

Now we need to find out what the right number is for your carpet, to replace the # with. If you've just placed the carpet floor down in the Dream Editor, you'll see the number in the Object Window to the left.

Tip: If you already have something else selected in DreamEditor besides the number of the floor you're looking for, you can find it another way! Choose Floors mode (the button with the F), then right click the carpet in the Edit Window - this will show you its number on the left!

Let's say you picked the carpet shape that's floor number 146. It's very colorful! Now you could copy the following lines and paste them into your DS file:

(0:2) When somebody moves into floor type 146,
(5:8) play sound 45 to whoever set off the trigger.

Congratulations, you've just made a mysterious purring rug!

Tutorial 3: Combining effects in DS, areas, and filters

So, we covered how to check the number for floors, but what about items? Well, you use the Dream Editor the same way you checked Floors, but instead use Item mode (the red pillow with I on it).

How about coordinates? If you want to use a line that needs you to fill in a position, like

(0:7) When somebody moves into position (#,#),

You can move to the spot you want in the Dream Editor and read the Cursor x= and y= parts to find the two numbers to use for coordinates. X corresponds to the first number in the parentheses, and Y corresponds to the second number.

So, let's try an example with moving into a specific coordinate. We'll also learn a new trick - instead of just one effect, you can put two or more! Once the cause happens, DragonSpeak will set off every effect it sees up until the next cause in the list. Here's an example:

(0:7) When somebody moves into position (20,10),
(5:4) place Item type 31.
(5:8) play sound 32 to whoever set off the trigger.

Did you find the right place to walk to test that? Wow, it put stuff all over the whole map, didn't it!

That's why you might want to learn how to use areas and filters. You can put them between your cause and your effects to limit the places where things happen. So instead of cause-effect, you can use cause-area-effect, or cause-filter-effect, or even cause-area-filter-effect!

Areas just specify a place for things to happen. If you don't use one, they will happen all over the whole map, as you found out! All of the lines beginning with 3 are areas. Try adding one to the example above, so it looks like this:

(0:7) When somebody moves into position (20,10),
(3:4) within the rectangle (18,12) - (24,15), (upper left - lower right)
(5:4) place Item type 31.
(5:8) play sound 32 to whoever set off the trigger.

That's a much more reasonable number of pillows, isn't it?

The lines beginning with 4 are filters. They can be used to limit the effects to only happening in some parts of the area you pick, instead of all of it. For example, place a couple of chairs (Item 4) in your Dream where the pillows appeared in the previous example, then try this script:

(0:7) When somebody moves into position (20,10),
(3:4) within the rectangle (18,12) - (24,15), (upper left - lower right)
(4:8) only where there are no Items,
(5:4) place Item type 31.
(5:8) play sound 32 to whoever set off the trigger.

See? The 4:8 filter only allowed the pillows to be placed where there wasn't already an item.

You can combine more than one filter if you want to. Then the effect will only happen in places where ALL of the filter conditions are true!

Tutorial 4: Using emits

Let's say we want our Dream to welcome someone who comes to visit it. With DS, we can add a sort of automated welcome message to greet players when they arrive. Copy and paste the following lines to your DS:

(0:9) When a furre arrives in the dream,
(5:200) emit message {Welcome, [FURRE]!} to the triggering furre.

If you'd like, you can replace the the text inside the {} brackets with whatever you want your message to be.

Tip: Whenever you put [FURRE] in an emit, it will show the person’s name who started the trigger. It’s great for personalizing your Dream! In this case, the name of the person who enters the Dream will show. Example: Welcome, Felorin!

Once you upload your Dream and walk into it, you should see that special emit message with your name on it! If you invite your friends to the Dream, their names will pop up when they come to visit, too.

Here's another example of using emits. Let's say someone walks up and sees the cute Pookie in your Dream! With DS, you can give him a life of his own by displaying emits to the people who interact with him.

So for this, we will emit a message to any player who tries to pick up (Ctrl-G or F2) the Pookie plushie near the stereo:

After you place the Pookie item in your Dream somewhere, you can copy and paste the following lines to your DS:

(0:17) When someone picks up item 53,
(5:200) emit message {Hey! Put me down!} to the triggering furre.

(0:18) When someone drops item 53,
(5:200) emit message {That's better, thank you [FURRE]!} to the triggering furre.

And there you have it! Your pookie has come to life!

Well, that's it for the beginning DragonSpeak tutorial! We hope you had fun trying it out and now have a better understanding of how it works.

Next you can find a reference page for DragonSpeak, which explains its structure and how some of the DS lines work. You may find it pretty handy as you start writing more DS!

DragonSpeak is a wonderful way to add magic and life to your dreams, so feel free to explore and try new things with your own ideas. If you have any further questions about it, feel free to contact the Beekins in game by saying help I need a mason!

Account E-Mail