Regions

What they are, what they do and why you don't need a passport

Regions are a way of organising, dividing and controlling your Dream layout! You can change them while the Dream is loaded, move them around, and add or remove them via DS. They can even be used with live-edit! Regions can be spread all over the map, as they are not confined to one continuous space.

Without using tons of DS lines, they let you...

  • build rooms right next to each other on the map, while hiding one room from the view of players in the other. No more massive black spaces on maps!
  • track players
  • control where in a Dream an object can be placed (or not), and where effects will happen, or whether they are visible
  • make a certain place inaccessible
  • dynamically change certain areas of the map. Examples: make it only rain outdoors, or have an earthquake destroy a specific temple's high altar
  • allow, disallow or require certain activities, such as: swimming, flying, talking, laying down, sitting, walking, picking up / dropping items, and uploading Dreams

Planning and Plotting:

The way to get regions into your Dreams

Regions are mapped out using the Dream Editor, and we'll start with a simple example Dream: a house with a single room, in a nice garden. Of course you can use regions in your existing Dreams, too.



And that's the bit we know already. What about these regions, hm? Well, first you'll want to click the Region tool in DreamEd.

Regions can be laid out all over the place, in a similar way as floors. They can be in any shape or size, not just rectangles. And they don't need to be all in one place! We can even put the same region scattered all over the map.

However, in this case, we'll use 2 regions: region 1 for the outdoors garden, and region 4 for the indoors 1-room house.

Tip: while you're building, if the regions are sort of in your way, you can hide them. Go to the Show menu at the top of DreamEd and uncheck Regions.

Tip: The left side of DreamEd will tell you the region number of the selected location, even if regions are currently hidden in your view.





Outside and Inside:

Using Regions to divide your dream into rooms

So one way to use regions is to make the inside of a place private, separated from the outside world. In our example, we can hide the outside world when we walk into our little cottage, giving us privacy. And indeed, one inside region is hidden from others.

Note: Hidden regions cannot be seen in the viewer, nor can you hear any player in a region hidden from view. And no, they can't see or hear you either - even if on the map you're actually in the squares next to each other.

Now we need some Dragonspeak (in the Dragonspeak Editor) included. First we'll add a setting with DS for when the Dream is first loaded to declare that regions 1 - 3 are outside, and regions 4+ are inside. We'll also choose to hide walls between the inside and outside regions.

(0:0) When everything is starting up,
(5:122) treat all regions numbered 4 and higher as 'indoors', and only show furres there what's in that region.
(5:125) show bottom walls outdoors only.

This means:

  • Players in outside regions can see other outside regions, but not inside ones. So you can mark several regions as outside and use multiple regions in one place without hiding anything.
  • Players in inside regions can only see the region they are in, and no other. So your inside rooms remain totally private from each other, as well as from the outside.

Note: If you haven't made any regions, or you're using a Dream without regions, don't worry. Nothing is going to break. Furcadia has traditionally treated all regions as if they were all outdoors, and so that is the default on any map that is not using regions.

Now we're all set to witness the awesome power of regions. Save your DS file + Dream map, and upload in a nice quiet spot somewhere. When you wander inside the house, you'll see that the outside disappears from view! And when you are outside, you can't see, nor hear what's going on inside.



Multiple regions in one room

For more complex Dreams, you might want to use multiple regions in one room. However, there is no way to show a certain set of indoor regions all at once. If you make a room with multiple indoor regions, the regions you are not standing in will disappear.

In this case, you can use multiple outdoor regions instead, and they will be able to see each other. Think of it like this:

  • Outdoor are used for your multi region rooms - even those that are supposed to be inside a building. With outdoor regions, you can use the silence and blocking effects; as mentioned in previous sections. But you have to place these rooms away from any other place they should not be able to see - just like how dreams have always been done until now.
  • Indoor regions can be used for secret places and private rooms, that do not need multiple regions in one room. These can be placed anywhere on the map, and you won't see them in outdoor or other indoor regions. But you lose the ability to use multiple regions in one place.

Tip: Put indoor hidden rooms in all that empty space between your outdoor rooms, using DS to teleport you. They'll still be hidden, and the space isn't wasted!

It's a Secret!

Masking hidden areas in your Dream with regions

You may want to use regions for secrets areas, so here's an example case we'll use: Yasabu Decimus is lost in the desert. Luckily for him, he found an oasis, with a good stock of food and water. But how can he protect himself from the fierce desert raider gangs of Bugges? Well, with regions, his secret hideaway can be a reality!

Here's a map of an oasis in the desert, starting with the floors and a few items. This will be Yasa's hidden hideaway.

Region 9 includes the area around the oasis floors to help merge the masking effect. Jungle trees around the oasis will make border, and then there's a path to the entrance.



The desired effect is to mask region 9 with jungle trees, so from the outside, it will merely look like a mass of jungle. However, clever Yasa will know the secret way in to a hidden oasis within. Upon entering, the place will act like any other indoor area - masking away the outside world - but instead of blackness, it will show the desert sand.

The DS we need to do this is the last 2 lines added to the example from the previous section.

(0:0) When everything is starting up,
(5:122) treat all regions numbered 4 and higher as 'indoors', and only show furres there what's in that region.
(5:125) show bottom walls outdoors only.
(5:144) show object 128 in indoor regions where objects are hidden, instead of what's really there.
(5:142) show floor 120 in outdoor regions where floors are hidden, instead of what's really there.

These two lines will replace the default blackness or void that our first example showed, with items or floors instead. There is similar DS lines for effects and walls too, and you can use a combination, if you'd like.





Voila! Yasa's secret hideaway in the desert sands. Hope he likes it.

Lets look at some other uses for regions, rather than just hiding and masking areas. They can do so much more!

Silence!

Using regions to make silent areas in your Dream, or to silence a single player

So you may want to use regions for more than just defining areas. Silence DS is one example of many, and here's a use case. Perhaps we have a classroom for Ms Rei-Jin, but those rowdy furlings just will not stay quiet. Hmm. What we need here is region DS, coupled with Silence DS lines to make a quiet area - giving Ms Rei-Jin a chance to teach her lesson.

For this example, we have one room with multiple regions in it. We are using region 5 for the students, and region 6 for the front of the class, where the teacher is. What we want to do here is make region 5 a silent region, so the furlings here cannot speak and scream during class. (They may still throw things and wield pea-shooters, however).




(0:0) When everything is starting up,
(5:212) set silent speech prefix (for spoken commands) to {!}

(0:31) When a furre says {!silenceclass},
(1:11) and the triggering furre has got shared control (or is the dream owner),
(5:160) set region 5 to silent (furres can't speak there).

(0:31) When a furre says {!classdismissed},
(1:11) and the triggering furre has got shared control (or is the dream owner),
(5:161) allow furres to talk in region 5.

Here are two commands to make region 5 either be silent or allow for talking. A very simple, elegant technique, and Ms. Rei Jin will be so pleased too!

Trespasser beware:

Blocking access with regions

A similar technique can be used to prevent unauthorised access to your staff-only or private places. The example below has a dining room for Emerald Flame's annual nutroast festival, but only staff should be allowed to serve the patrons. After all, there's Health and Safety to think of!

Again, two regions in the same room. Region 2 for the majority of the room, and 3 for the area we want to block access to.

Tip: This method can be used in multiple rooms as well without having to use up more region numbers. Make the kitchen and the staff room region 3 as well, and this DS will apply to those places also. No sneaking off with Emmie's pumpkin pies!


(0:1) Whenever somebody moves,  (1:111) and the triggering furre hasn't got shared control (and is not the dream owner),
(1:83) and the spot they moved to is in region 3,
(5:18) move the triggering furre back where they came from.
(5:200) emit message {[Hey. Get yer grubby paws out of my kitchen!]} to the triggering furre.

Other uses

You can change regions dynamically with DS, while the Dream is loaded. So, for instance, you can add DS that lays down region 3 squares upon command. In our example, Emmie might use this to save her seat from meddlesome furres who want to steal it. Or indeed, you could turn the block area off when the dining room is not in use - or block the whole room to close it for the night.

You could even combine silence and block regions! The classroom example from earlier could use blocking regions to stop naughty furlings from stealing pencils after class and silent them, cumulatively.

There's more than just these examples, too! You can also stop objects being picked up or dropped in a region, allow summoning, leading and joining (or prohibit it) in a region, make it impossible to lie or sit in a region, etc.

Where's Gar?:

Using regions to track staff, add staff chat, and more

Bigger dreams, such as Taverns, Build-a-Homes and clubs might find a better use for regions in tracking players, such as their staff, or incorporating an easy-to-make staff chat channel. While there are ways to do this already (string DS), they are more complex for some.

What we will attempt here is to use regions to track staff and provide some awesome functions for bigger Dreams, instead of using them for zoning out rooms.

Tip: This would be an excellent way to make use of regions in areas that have already been mapped and made. While regions can hide rooms and other such fun, you'd basically end up remaking your entire map to take full advantage of such a feature.

Warning: if you're using a premade Dream instead of a new one for this tutorial, beware. This example makes a region follow a staff player, and as they walk about, they could overwrite any existing regions you might have already put in the Dream after it's uploaded.

For our example, we'll reuse the map of Emmie's kitchen. Emmie has a kitchen staff named Gar, but he's a distractable cat - so we're going to use regions to be able to track him down and find out where he's gone to sleep when he should be working.

Unlike the first example with this map, no regions will be placed down just yet. Instead, we'll make some DS that can, itself, place a region upon Gar, and follow him as he moves about.

We'll start with a bit of DS to follow Gar as he wanders through the Dream, by placing region 100 under him as he moves from place to place, and erasing the region from the place he just left.

Note: We use region 100, but it is important to make sure this is an outdoor region... if it was an indoor region, then Gar won't be able to see anything around him, cause it would be hidden! And then he'd never do the dishes - he can't see them!

(0:1) Whenever somebody moves,  (1:70) and the triggering furre's name is {Gar},
(3:5) where the triggering furre moved from,
(5:120) make this/these location(s) part of region 0.
(3:6) where the triggering furre moved into,
(5:120) make this/these location(s) part of region 100

Then of course, we'd need to account for Gar arriving and leaving the Dream too. Notice how we use variable DS to determine the correct location to place the region. This is to account for the way that Dreams operate on arrivals and departures.

(0:9) When a furre arrives in the dream,
(1:70) and the triggering furre's name is {Gar},
(5:350) set variable %GarIsHere to the X,Y position the triggering furre (moved from/is standing at).
(5:121) make location (%GarIsHere) part of region 100.

(0:10) When a furre leaves the dream,
(1:70) and the triggering furre's name is {Gar},
(5:350) set variable %GarIsHere to the X,Y position the triggering furre (moved from/is standing at).
(5:121) make location (%GarIsHere) part of region 0.

Now we can add a command to locate Gar.

(0:31) When a furre says {!whereisgar},
(1:70) and the triggering furre's name is {Emerald|Flame},
(5:56) make the furre named {Gar} the new triggering furre, if they're in the dream right now.
(5:350) set variable %GarIsHere to the X,Y position the triggering furre (moved from/is standing at).
(5:205) emit message {Gar is at %GarIsHere.x,%GarIsHere.y} to the furre named {Emerald|Flame} if they're in the dream.

With region DS, we can search for the region Gar is in, and emit a message to him. As region 100 is his own personal region, only he will see the message Emmie writes.

Note the use of string DS here. It records what Emmie says, removes the command word from it, then relays it to Gar in his own little region world.

(0:32) When a furre says something with {!tellgar} in it,
(1:70) and the triggering furre's name is {Emerald|Flame},
(5:255) set message ~GarMessage to what the triggering furre just said or emoted.
(5:278) remove the first 1 copies of {!tellgar} from message ~GarMessage.
(3:30) in region 100,
(4:30) only in region 100,
(5:201) emit message {~GarMessage - From Emerald Flame.} to any furre present.

And there we have it. A private, dream-wide chat channel from Emmie to Gar. Savvy!

You could replicate this to make more channels for other people, each would need their own region. Or you could make a channel for a group of people with a few edits here and there.


Regions are a wonderful way to manipulate 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 volunteer Beekins in game by saying help I need a mason!

Account E-Mail

Password