TUTORIAL: Advanced Building
This is my tutorial for advanced building in Epsilon. I'll assume you know all the techniques from the earlier Building Basics tutorial. There is no set order to follow here, except for grouping and blueprints. Anything else you can just read and try out on its own. As before, commands will be written down
Parts in brackets <like this> require your own input.
1. Object Groups
Object Activation 1. Object Groups
Object groups are handy to manipulate several objects at once. These could be floor tiles you have placed into a row and want to double in size without having to spawn each one separately. It could be a custom built roof you want to duplicate, or maybe you've heard of blueprints already and want to try making one. Grouping up your objects is where it all begins. For this tutorial, I've decided to make a hammock between two palm trees.
To build this, find and spawn the following objects:
Make the palm trees smaller (scale 0.1 should do the trick) and rotate the objects to make the hammock more or less like in the picture above. When your creation is ready, it's time to group them. There are several ways to add objects to a group. The important thing to know is that a group always has a main object. When you manipulate the object or spawn a new copy, the main object will always be used. When selecting the group later on, we'll need to approach this main object. In the case of the hammock, we'll settle on making the hammock itself the main object.
To group things to the main object, we can select the -other- objects and either use the [Group] link of the main object for each of them, or we can use
.gob group add <guid>
where <guid> is the guid of the main object, displayed in the chat when you select the object. This method is handy if you want to make a macro for adding objects to a group after spawning them.
In this case, all the objects are already there and there are no other objects around that we'd like to exclude from the grouping. A much faster method would be to select out intended main object (the hammock) and using
.gob group addnear <range>
where <range> is the amount of yards around your character (!) that will be taken into account for adding to the hammock. To add the two trees, we stand next to the hammock and use
.gob group addnear 10
You can always add more objects to a group later, or remove individual ones.
The objects are all lit up, which means we have successfully grouped them. Now let's try a few basic manipulations. These are done with 'gob group' commands instead of 'gob'. With a quick
.gob group copy r 5
we have a second group of trees with a hammock.
The following commands from regular object manipulation all work like with regular objects as long as we use 'gob group':
.gob group sel
.gob group move <direction> <range>
.gob group copy <direction> <range>
.gob group turn <degrees>
.gob group scale <scale>
Note that pitching and rolling can't be done as a group. However, you can still move, roll, scale individual objects without having to reform the group. For instance, we can make the hammock a little bigger or higher without touching the palm trees. The end result is this
Whenever we manipulate a group, the game takes the main object as its anchor. When we turn the group by 180°, we turn the main object and everything around that. This is why I chose the most central object to be the main object. We can always change the mail object by promoting an object that's already part of the group. Select one of the trees and try out
.gob group promote
Objects can only be in one group. To reassign an object to another group, remove it from its current one first. To remove a single object from a group, select the object and use
.gob group remove
To clear a group entirely, select the group and
.gob group clear
Let's go ahead and make these six objects into a new group. We'll clear the second group and add them all to the original hammock with another addnear command.
To delete a group, use
.gob group delete
but let's not get ahead of ourselves. We'll need this group to try making a blueprint.
Blueprints save object groups for later use and enable us to spawn them at will. We can also share them with selected users or everyone. To make a blueprint, you need to have a group selected. With our two hammocks and their palm trees selected, we can simply make a private blueprint using
.gob blueprint new <name>
I've chosen the name 'HammockGroup'. Feel free to call it anything you like, but it's advised to take unique names that describe the blueprint in one or two words. After creation, we can already spawn the blueprint on our location with the [Spawn Blueprint] button in the chat.
When selecting the same group, we can also make use of
.gob blueprint update <name>
using the name of the blueprint you already had. To delete a blueprint entirely, use
.gob blueprint delete <name>
It's entirely optional, but you can also give your blueprint a description using
.gob blueprint description <name> <description>
Blueprints are automatically shared with all characters of your account. On any character, use
.lookup blueprint <name>
to find your blueprints using their name. You don't need to use the full name. Just try it with Hammock and you'll already find it. Try spawning it now. To get rid of it again,
To share a blueprint with everyone else, use the following command:
.gob blueprint share <name> <player>
Use 'HammockGroup' as a name, and 'public' as the player. Of course, typing in a specific player name will only share it with that person. To undo the listing of your blueprint to others, you can use
.gob blueprint delist <name>
This does not remove the objects from players who already spawned your blueprints, however.
Now all that remains is to be able to look up public blueprints, to find your own and the works of others that you are free to use. A simple
.lookup blueprintpublic <name>
does the trick. With the
.gob blueprint rename <name> <newname>
I've renamed my own HammockGroup to TwoHammocks and added it to the public repository. Try and find it in the public list and spawn it. Note how you spawn the main object of the group where you stand and the rest around it. You can get rid of it again by deleting it as a group as seen in the first section of the tutorial. As an alternative to spawning a shared blueprint, you can also import it into your own private collection of blueprints by typing
.gob blueprint import <BlueprintID>
You can find the blueprint ID on the left side when looking up blueprints in a list. In the case of the TwoHammocks blueprint, the ID is 5559.
Teleporters are objects that trigger and do something to a player when approached. Apart from teleporting the player, they can do a number of other cool things. Any object can be made into a teleporter. Let's start with our tutorial project: a magical maze! Let's set up the maze first. After doing the following commands, we should be ready to start:
.gob sp 875377
.gob m d 17.5
We're ready to make our first teleporter. Spawn an object in the middle of the maze that'll be the goal of the maze and act as a teleporter. I've chosen to put up a 7af_priest_pedestal.m2 with a goldgoblet01.m2 above it. The pedestal will act as a teleporter when you come near.
Turning the pedestal into a teleporter is as simple as
.gob teleporter on
We'd like to teleport to a different location after the center of the maze has been reached. To attach a destination we can use
.gob teleporter add
This will teleport anyone who comes close enough to the place we were standing on when we executed the command, as long as we kept the teleporter selected. I want our maze to end up in Raven Hill Cemetery though, so for that, we save the GUID of the teleporter and from the location in Raven Hill, we type:
.gob teleporter add <guid>
Now we have a working teleporter. A quick teleport back to 1945 and a test run later, we see that nothing happens yet when we get close to the pedestal. This is because the default range of a teleporter is quite small and we need to make it bigger. The maximum range is 10, but let's use 5 in this case. After selecting the pedestal, do a
.gob teleporter setrange <range>
If you stand close enough when executing the command, you'll see the effect right away. Excellent, but we're not done yet. Select the pedestal again. We're going to add a delay and an effect to it. We can add an animation to the teleport and a delay to display the animation before the loading screen kicks in. We'll need a spell ID, so let's find one using
.lookup spell teleport
I've chosen spell ID 8735 for this, so let's go ahead and add it to the teleporter, together with a delay of 350 miniseconds. Use '8735' as id and '350' as duration for the following commands:
.gob teleporter setspell <id>
.gob teleporter delay <duration>
Voilà. We can teleport players from the maze to Raven Hill. But wait, there's more! There is no need for transporting behaviour for a teleporter to work. I've added a 6or_enchanting_tikimask01.m2 to the entrance of the mage and made it a teleporter to apply spell 185394 and nothing more. A creepy mask that makes an unnatural night descend over the maze. Time to get lost! You can get really creative with teleporters. You could add several hard to see traps in the floor that teleport you back to the start of the maze, for instance. you'll discover more creative uses as you play around with them.
Other than transporting players and casting spells on them, teleporters can also activate the object you are approaching. For this, use
.gob teleporter setactive
Of course, this only works on objects that do something when you activate them. Manually activating may screw up the teleporter activation though, so make a sensible choice between automation and using commands when you need them.
The last cool trick a teleporter can do is phase teleporting. This does exactly what it sounds like. It teleports you not only to a location, but into another phase as well. Don't forget to set the phase as well as the destination location in that phase. For phase teleporting, the creator of the teleporter needs member permissions in the destination phase, so you can't just link to anyone's phase without asking and no one will invade yours without your say-so. Due to the inner workings of phase teleporters, you can't set delays on these at all or they won't work. Adding a phase to the destination of a teleporter is done like this:
.gob teleporter setphase <phaseID>
You can disable teleporters or clear all the teleporting data with
.gob teleporter off
.gob teleporter clear
Note that teleporting abilities are not saved on objects when you make a blueprint.
Now let's make a teleporter that actually gives you a choice of where to go. If we add a location to the teleporter with the GUID attached, we only need to add two more things to have the teleporter give us a choice. On this runestone, I've used the following commands:
.gob teleporter on
.gob teleporter setspell 8735
.gob teleporter setrange 5
.gob teleporter delay 350
.gob teleporter add <guid> 1 "First Location"
.gob teleporter add <guid> 2 "Second Location"
.gob teleporter add <guid> 3 "Third Location"
.gob teleporter add <guid> 4 "Fourth Location"
.gob teleporter add <guid> 5 "Fifth Location"
.gob teleporter add <guid> 6 "Sixth Location"
.gob teleporter add <guid> 7 "Seventh Location"
.gob teleporter add <guid> 8 "Eighth Location"
.gob teleporter add <guid> 9 "Ninth Location"
.gob teleporter add <guid> 10 "Tenth Location"
.gob teleporter add <guid> 11 "Eleventh Location"
The numbers 1-11 correspond to icons, the text between quotation marks to the text we want to see as options. This command won't work if you don't use quotation marks. To see what the icons look like, check the next picture. Also note that the spell effect will only trigger when you actually select a teleport location. For some reason, you may have to click twice the first time you use a teleporter that gives you a choice.
Another great tool of Epsilon is the ability to set a custom visibility range on objects. The most common use of visibility is to set some larger buildings to be permanently visible, so they don't fade from view when you look at them from a longer distance. Some scaled .wmo objects, like some pillars or ocean tiles, also act up a little when you travel further away from them and come back. Suddenly, it's as if they've forgotten they were scaled at all. Setting visibility to permanent on these is a quick fix to the problem. You can do this by using
.gob set visibility <range>
Use '-1' to make an object permanently visible. Of course, you can also greatly reduce the visibility so that your village looks magically hidden from afar and it's only visible when you move closer. You can also make some creative puzzles with lowered visibility.
Visibility on objects is saved when making blueprints.
There are a few special objects you should know about. You may have heard of Epsilon's terrain_cut object that lets you cut into the world terrain to put in your own caves or mines, basements, half-submerged towers in which you still want the basement available. To spawn a terrain_cut object, use
.gob sp 874450
or look up the eps_terrain_cut.wmo in the in-game listing. You can place several terrain_cut objects together, but you can also make them bigger by scaling them down(!) using the regular gob scale command. The terrain cutting object doesn't work on objects.
To make candles/chandeliers/torches/streetlights/fireplaces or even magical objects emit light, you can use cavelight objects. When you type in
.lo obj cavelight
you'll find 9 different objects, each with a distinct colour. Spawn these inside the object that should emit the light and rescale it. IT's tempting to scale it up to make it more intense, but since walls or other objects don't break the effect, you can end up with candles lighting the outside of a house. In that case, scale down and consider spawning two cavelight objects if the light is too dim.
Epsilon's own objects
Epsilon also has own versions of existing buildings. There are gilnean versions of the human garrison buildings, various recolours for the largest human garrison buildings, and coloured version of existing Elven buildings. Sometimes, the in-game listing will also indicate there's an 'emptywmo' version of a building, without furniture and other clutter. You can't find these in wow.tools, so here are a few pointers:
Don't look for exact names with the .wmo suffix in the in-game listing. Try a lookup of '6hu_garrison_townhall_v2.wmo' and compare it with the results of a lookup of just '6hu_garrison_townhall_v2'.
Try looking for Night Elf or Blood Elf objects with the 'voidelf', 'royal_bloodelf', 'pristine_nightelf' or 'royal_highelf' prefixes, or do as above and cut the existing prefix and widen the search. Try it out with nightelf_moonwellarge and see if you can find the pristine_nightelf and royal_bloodelf version too. There are also some blood elf building with a 'highelf' prefix. Try finding the typical blood elf guard tower with a blue crystal spire.
Macros can be a great help in building. From simplifying setting permanent visibility on selected objects to repeating tasks like selecting and deleting objects, macros can save a lot of time. If you haven't ever made one, do
to open the macro menu. Make a new one by selecting 'New' at the bottom, pick a name and icon and then type in commands in the text field, each one on a separate line. Afterwards, you can drag them from the top of the menu to your action bars. Useful macros are usually little tasks such as:
.gob group select
.gob group delete
.gob set visibility -1
Be sure not to load too many manipulations into a single macro. Because the server tries to get them through all at the same time, some may not be saved. It may look fine on your screen, but the next time you log in, you may find some objects missing or out of place. Instead, if you want to do a few manipulations at once, make a macro for each one and press them all in a sequence. It still saves time and you're sure the server caught them all properly.
Proper movement can be a great time saver when building. Depending on the size of your project, you may have to move around a lot. Looking at things from all angles also makes you see any gaps between objects you are trying to assemble. To move around, most builders don't just walk, but also fly. You can use the 'Epsilon Tool' addon to enable flight and set the flight speed, but you can also use commands.
.cheat fly on
.cheat fly off
These commands enable and disable flying, and speed is regulated with
.modify speed fly <speed>
where speed can be put in a range between 0.1 and 50, with 1 being normal running speed.
Another way of getting around is the gps command. Using the directions similar to the gob move command, you can use
.gps <direction> <distance>
It'll launch you an amount of yards upwards/forwards/etc. This is handy to get out of an object that gets you stuck after spawning or to estimate the dimensions of a space. You can also use it to jump through a wall to take a shortcut, or to get underneath the world terrain.
Macros can help here as well. I don't start building without the following command sets as macros:
.cheat fly on
.modify speed fly 5
.cheat fly on
.modify speed fly 25
.gps f 5
If you want, you can also teleport around the map with a targeted blinking spell. Type in
to learn a spell that allows you to mark an exact spot to teleport to. You can find it in your spell book, or it binds to your action bar if there's space on it. You need to do this only once per character.
Tiles are objects with unique textures. To build buildings from scratch, tiles are often used as walls, floors or even roofs. They can be used in furniture as well though. The drawback on tiles is that they can't be looked up in a modelviewer. You'll have to find them in Epsilon yourself. There's a broad tile mall that has most tiles, but for the most recent ones or for narrowing down per theme or name, you can also use the in-game functions to find them. You can find all the malls in Builder's Haven:
.ph e 26000
To look up tiles, use the following command:
.lo obj tile <name>
Try it out using 'kultiras' as a name to find some BfA building tiles.
The only way to place down water you can swim around in is with a tile. Wherever you place it, the space below the surface will make a character swim. There are three types of tiles for water, and they can be found like this:
.lo obj watertile <name>
.lo obj laketile <name>
.lo obj oceantile <name>
If you feel like browsing, the name is optional. If you don't give any, you'll just get all the tiles of that type.
Building tiles come in the following dimensions:
This means that for most tiles like stone floors or wooden planks, the command
.gob copy <direction> 4
will place the next one right alongside it, extending the pattern seamlessly. When you scale a tile up or down, remember to apply the same scale to this distance.
Water tiles dimensions are:
Lake tiles dimensions are:
Ocean tiles dimensions are:
Some objects can be activated. This makes door open, or open and close, chests open or special objects glow. The command to achieve this is
.gob group activate
when selecting an object or object group. This will make the object activate once. If it opens a door that will stay open though, the door will close again the next time there is a server restart. Sometimes we want to activate objects by default. Go ahead and spawn blueprint 6534 with the command:
.gob blueprint spawn 6534
You'll spawn a small globe with a red sphere in the middle. You could activate the globeofazeroth.m2 object manually to get it to show the actual globe, but then you would have to do so after every server restart.
To make activation permanent, get the GUID of the object and use it in the following command:
.gob activate <GUID> permanent
To avoid a hassle, you can insert the GUID by clicking the [Copy GUID] link after selecting the globe.