The Titan Quest Editors: A Modder's Guide
The Titan Quest Editors: A Modder's Guide
The Titan Quest Editors: A Modder's Guide
A Modder's Guide
Table of Contents
Intro: Meet Your Tools 1 Basic Navigation and Object Placement 2 The Art Manager 3 Basic Terrain 4 Quest Objects 5 Advanced Terrain 6 Dungeons and Grids 7 Object Fanciness 8 Traversing from Region to Region 9 Making a Trigger 10 Making a Mod from Scratch 11 Using a New Database Entry 12 Quests 3 4 12 15 23 24 30 33 36 40 44 46 49
The Art Manager will open and the working directories will be set up under My Documents -> My Games -> Titan Quest > CustomMaps. Next, go to the Help menu and select Install Tutorials. This will copy the tutorial files that you should use while reading this guide. Everything should now be properly set up. Proceed when ready.
As your worlds get bigger, you will need to move the camera around in Layout Mode to get a better view of the arrangement of levels across the world. 1) To pan the camera across the world, hold the right mouse button and move the mouse. 2) To rotate the camera around the world, hold down the middle mouse button and move the mouse left or right. 3) To zoom the camera in and out in Layout mode, roll the mouse wheel up and down. 1.1.3 Choosing a Level to Edit 1) Select the box in the middle of the layout mode screen. Notice that it becomes highlighted and its name is superimposed over it. Layout mode is good for placement of levels and getting a feel for where different regions will go in relation to everything else. Now that we want to get to actual level editing, we need to enter Editor Mode. We can do this in either Layout Mode or Editor Mode. Layout Mode: 2A) Select a level to edit. 3A) Press the mode change button.
Editor Mode: 2B) Select the Editor Mode tab at the base of the screen. 3B) Once you are in Editor Mode, use the rolldown list in the top-right corner of the window to select the level you wish to edit.
Example 1.1.4 Navigating in Editor Mode After a brief loading period, you should be looking at some grassy hills like those pictured below. This is the level we will be editing. As the whole level does not fit onto the screen at once, you will eventually need to move the camera around.
1) To pan across the surface of the terrain, hold the right mouse button down and move the mouse. 2) To rotate the camera around a spot on the terrain, hold the middle mouse button down and move the mouse left or right. 3) If you need to zoom in and out, you can roll the mouse wheel up and down to get closer or farther away from the ground.
2) In the directory pane on the right, locate and select the object 'records -> creature -> monster -> satyr -> am_peltast02'. 3) Click on the terrain in the Level Edit Pane to place the satyr. 4) To place another satyr, click again on the name of the object in the Directory Pane. 5) Then, click on the terrain in the Level Edit Pane.
Tips
Multiple copies of the same object can be placed by holding control while left-clicking. Checking the randomize rotation box in the right pane will drop objects with a randomized orientation. This way multiple objects wont be aligned in exactly the same way. Checking the snap to grid option snaps the placement of the object to the nearest intersection points on the height map grid. This is especially useful for lining up things like walls and buildings.
1.2.2 Object Deletion Deleting objects is pretty intuitive. 1) Select an object. 2) Press the Delete key on the keyboard.
2) Move the mouse to the center of the symbol (where the cross is). You'll notice this causes the mouse icon to turn into the four-way arrow icon. 3) When this icon appears, you can click and drag the object across the terrain. 1.3.2 Vertical Movement of Objects Vertical Movement determines how high above or below the terrain the object will be.
1) Select an object. 2) Move the mouse so that it is resting on the inner circle of the indicator. You will notice that the mouse icon changes to just an up-and-down arrow. 3) At this point, by clicking and dragging the mouse up or down, you can move the object up into the air or down below the ground. 1.3.3 Rotation of Objects Rotation determines which direction the object will be facing. 1) First, select the object. 2) Move the mouse to the outer circle of the movement indicator. The mouse pointer should change to an arrow chasing it's tail. 3) Click and drag the mouse left and right to change the direction the object is facing. Bear in mind that this mode isn't very sensitive to mouse movement, so you'll have to drag a long way to do a 180. 1.3.4 Aligning Objects to Ground Pressing the Spacebar will move all selected objects so that they are the same level as the ground under them. Note that this will only work for the terrain level. If you want to place objects on other objects, youll have to eyeball it. 1.3.5 Selecting Multiple Objects at Once There are two ways to select multiple objects in the editor: the selection box, and Ctrl + left-clicking. Selection Box 1. While left-clicking, drag a large selection box by moving the mouse. 2. All objects within this box will be selected. Ctrl-Clicking 1. Left-click an object. 2. While holding the Ctrl key, left-click another object. 3. Each new object is added to the group. 1.3.6 Copy and Pasting Objects Objects in the game can be copied and pasted to other locations in the world. 1. Select an object or objects. 2. While selected, press Ctrl + C 3. Press Ctrl + V to paste the object(s) in the world. Pasted objects will appear in the center of the screen. You can highlight multiple objects by drawing a box, with the mouse or clicking on an object and then clicking on other objects while holding Ctrl key. These objects can be moved as a group laterally, vertically, or rotated around a central axis.
A progress bar will appear to give you an indicator of when it's done. 3) Press 'OK' to close the Level Progress window. 1.5.2 Building Maps 1) In Layout Mode, select 'Build -> Rebuild All Maps' from the Menu Bar. A progress bar will appear to give you an indicator of when it's done. 1.5.3 Save Any Changes 1) Select 'File -> Save All' in the menu bar. Once you've saved any changes to your world and all your levels, we're done in the Editor. But we've still a few steps left to go.
2) Select Build menu and click on Build. You will see some activity in the pane at the bottom of the screen. When the Art Manager is done processing the .map, it will tell you the total build time for the action.
10
Remember You must always place at least one a Spawn Point on your map Build pathing and map when you make changes to either After you have saved your map, you must re-build your mod to see the changes in-game
11
Below the Directory Pane and Folder Pane is the Status Pane. The Status Pane gives the user helpful information about the progress of any actions the Art Manager is taking.
12
3) You will be prompted for the asset name (it should choose the correct) one. Press OK. The asset will be created in the correct folder in the assets tab. 4) That was the quest, now for the map. Right-click on the .wrl file and auto-create its asset. It and the accompanying level files will be automatically incorporated into a .map asset. 2.1.2 Manually Creating Assets Assets can also be created manually: 1) Click the Assets Tab 2) Create any folders needed to mirror the location of the source file 3) Select the folder and right-click the asset pane. 4) Select New and choose the asset type to create. From here, you can select the source manually, and the asset will be created.
13
In general, if youve made multiple changes, you will want to rebuild your entire mod it wont take too long. Go to Build -> Build. A word of warning: Dont close the Art Manager until it is finished building! You can also build assets, database records, and directories under either tab individually. Right click on the item or folder and select build from the menu that appears.
14
15
3.2.1 Brush Radius The first property is Radius, which affects the size of the area the paintbrush will affect. 1) Enter a new value into the Radius field in the Brush Properties Pane. The size of the circles on the terrain will change. The paintbrush's radius can also be changed with hotkeys. 2) Press the '[' key. The paintbrush's radius will shrink. 3) Press the ']' key. The paintbrush's radius will grow. 3.2.2 Brush Strength The second paintbrush property is Strength. Strength describes how much the brush will affect the terrain as it gets towards the edge of the brush. A low strength will have it pulling mostly the middle, and a high strength sculpts almost uniformly across the paintbrush. 1) Select the Bump/Dip Tool. 2) Enter a value of 10% in the Strength field in the Brush Properties Pane. 3) Left-Click and hold the paintbrush in one spot on the terrain. The terrain will rise very sharply in the middle of the paintbrush but the terrain near the edges of the paintbrush is almost unchanged.
4) Enter a value of 100% in the Strength field in the Brush Properties Pane. 5) Left-Click and hold the paintbrush in one spot on the terrain. The terrain under the paintbrush rises at a nearly uniform rate.
16
3.2.3 Brush Speed The last property, Speed, affects how quickly the brush pushes and pulls on the terrain. 1) Select the Bump/Dip tool. 2) Enter a value of 10 into the Speed field in the Brush Properties Pane. 3) Left click and hold the paintbrush in one spot on the terrain. It takes several seconds before there is any noticeable effect on the terrain. 4) Enter a value of 500 into the Speed field in the Brush Properties Pane. 5) Left click and hold the paintbrush in one spot on the terrain. A large hill quickly rises out of the terrain.
17
18
19
2) Move the paintbrush so that the square contains all of the terrain you want to copy. 3) Left-click the mouse. Notice the paintbrush has turned into a ghost image of the shape of the terrain you copied. If need be, you can also rotate the ghost image of the terrain. 4) Press ',' or '.' to rotate the terrain counter-clockwise or clockwise respectively. 5) Move the paintbrush to the area where you want to paste the the copied terrain. 6) Left-click the mouse to paste the copied terrain. 7) To clear the ghost terrain image and terrain clipboard, press Spacebar.
20
3.9.1 Adding a Texture Layer 1) Start by selecting the Texture Paint Tool. Each terrain texture is a different texture layer. The user paints the opacity for various areas of each layer. Areas of a texture with a low opacity will show more of the layers below than an area with high opacity. The texture layers the user is currently using are displayed in the Texture Layers Pane on the right side of the screen. The layers that are lower on the list will be drawn on top. So if the list had, in order from top to bottom, rock, dirt and grass in it, it would draw the rock, then the dirt on the rock, and then the grass on top of the dirt. 2) To add a layer, click the 'Add Layer' button underneath the list box. This opens up the Texture Picker window.
3) Navigate through the folders in the Directory Pane on the Left. Each of the textures present in that folder are listed in the Folder Pane on the right with a small thumbnail of the texture.
21
4) Select a texture in the Folder Pane. A larger sample of that texture appears at the base of the Texture Picker window. 5) When you are satisfied with your texture choice, click 'OK'. 3.9.2 Painting With a Texture Layer Terrain textures are painted directly onto the terrain. 1) Select the Texture Paint Tool 2) Select a texture layer from the Texture Layers Pane. 3) Move the paintbrush over the terrain 4) Click and drag to paint the area you want the texture to appear on.
In order to blend the textures together, the user can adjust the opacity of the paintbrush in the Texture Opacity Pane on the right. Each texture is designed such that as the opacity goes down certain areas disappear first, so pebbles will stay visible as dirt disappears, and foliage will shrink. Opacity can be changed by entering a value into the Opacity field in the Texture Opacity Pane dragging the slider next to the field. The opacity can also be set to the multiples of 10% by using the number row on the keyboard.
22
23
24
25
5.2.2 Editing a River You may decide you need to move the control points and curve points after they've been placed. 1) Hold the mouse over the center of a control point. The mouse will turn into a 4-directional arrow. 2) Click and drag to move the control point around. 3) Move the mouse to the top or bottom of the selection circle. The mouse will become an up-and-down arrow. 4) Click and drag to increase or decrease the height of the river above the terrain. 5) Move the mouse to the left or right of the selection circle. The mouse will become a left-right pair of arrows. 5) Click and drag to make the river wider or narrower at that point. 6) After selecting a control point, move the mouse over one of it's bezier handles. The mouse cursor will become a mouse chasing its tail. 7) Click and drag to move the bezier handle around. The curvature of the river will change as the bezier handles are moved and lengthened. 8) You can also widen or make the river narrower with the '[' and ']' keys when editing a point. Often times you can reduce the number of control points you need just by clever placement of curve points. Note: The Bezier curves in rivers can have a big impact on performance. We recommend to limiting your rivers to three or fewer Bezier handles. For longer rivers, you can string together rivers with two handles each.
26
5.3.2 Sectors at Work Let's give ourselves a quick demo of how sectors work. 1) Select the 'Mountain Fog' layer style. 2) Using the mouse as a paintbrush on the terrain, draw a quick patch of that sector by left-clicking anywhere on the terrain. You'll notice there's a small black sphere at the center of the screen. This is the object that the Editor uses to determine what sector your are in. 3) Move the camera so that the black sphere is just outside the terrain you painted. You will notice a Density slider in the Height Fog portion of the Fog/Lighting Options Pane. 4) Drag the Depth Fog's Density slider to a value of about .50. 5) Move the camera back so that the black sphere lies in the sector you painted. You'll notice that the screen fills up with semi-transparent fog.
6) Move the sphere outside of the sector. The fog will disappear. This same effect will happen in the game. When the character runs onto the sector, the fog effects will appear, and when the character leaves, they'll go away.
5.3.3 Painting a Fog Layer Since we want the fog to appear in the background when the player is running around on top of the plateau, we should just designate the large plateau as the fog sector. 1) Select the sector layer you created. 2) Paint the fog sector such that it covers the entire plateau. Now, whenever the player is running around on top of the plateau, the fog effects for that sector will take effect. As nice as it is to have fog everywhere when we're standing on the mountain, it would look nicer if we could manipulate it so that each of the plateaus is poking out of the clouds. For that, we need height fog. Height fog creates a fog that gradually transitions from a specified density at one height to completely transparent at another height. Locate the Fog/Lighting Options pane on the right. 3) Slide the Depth Fog Density down to 0.
27
4) Locate the Density slider in the Height Fog portion of the Fog/Lighting Options Pane. 5) Set the height fog's density to .99. 6) Set the height fog's Bottom Height property to 1. 7) Set the Top Height property to 10. The fog will fade from .99 percent opaque at a height of one to completely transparent at a height of 10. It will appear as though the plateaus in the distance disappear into the clouds as the player runs through the sector.
28
So that's it. Don't forget to re-build your pathing, as the no entry brush affects that (see section 1.5.1). Just save in the editor and build in the Art Manager the way you would with any other map.
29
The dungeon will change from a series of natural, green walls to some brown, stone walls.
30
6.2.2 Painting the Walls Walls are painted very similarly to floors. 1) Select the Wall type you want from the Walls pick box in the Grid Types Pane. Like the floor, there is no delete wall option, so you'll have to use the "No Wall" trick. 2) Click on the edge of a wall to place a wall segment. By dragging the mouse across the grid you will be able to draw a stretch of wall under the path of the mouse.
6.2.3 Placing Features Another aspect that can be painted onto a grid is features. Features are special aspects of a dungeon such as doors. 1) Select 'Dng_Egypt01_Base_EntranceG_Int01' from the Features picker in the Grid Types pane.
2) Click to drop it on one of the tiles between the two torches at the end of the grid. Now the dungeon has a proper door.
6.2.4 A note on multiple floors. While it is possible to create dungeons with multiple floors using the editors, this feature is not supported with the provided tilesets. We recommend doing what we did link multiple dungeon grids with staircases.
31
32
7.1.2 Placing an Object from the Object Palette into the Level Edit Pane The Object Palette works exactly like the Directory Pane. 1) Select the object in the Object Palette. 2) Click on the terrain in the Level Edit Pane to place the object.
7.2 Groups
Groups are a way of grouping similar objects together. Often times an object needs to be put into a group of the appropriate type in order to function properly. We're going to create a group of NPCs who will wander around the map. There are already some NPCs placed on the map, but until they are placed in a group to make them wander, they will just stand still. 7.2.1 Creating Groups To set your NPCs strolling, well need two sets of groups. 1) Select the Group Tool. You will notice in the Group List Pane on the right that there is already a group called Wander Points. 2) Click the 'New' button in the Group List Pane.
33
3) In the Group Properties pane, change the Name to The Wanderers 4) In the Group Properties pane, change the Type to 'Npc Wanderers'
5) Next, create a new group. This one is for the wander points. Name it something like Wander Here. The first group will contain the NPCs who are supposed to wander. The second group will link to the areas the NPCs are supposed to wander in. 7.2.2 Linking Groups 1) With the Wander Here group still selected, left click on each of the two wireframe spheres (called bounding volumes). Red boxes will appear around each of them, showing that they are now part of the group. 2) Select The Wanderers again, and left click on each of the three NPCs. Red boxes will appear around them when they are linked 3) Check the Link Mode box and left click on the black dot that appears between the bounding volumes. A large arrow will appear. This indicates that the NPCs are assigned to the wander points.
The grouped NPCs will mill about between the two wander points weve created. Generally, you should have at least two wander points, and you should place your wandering NPCs inside of them.
7.3 Sounds
To create a sound in Titan Quest, the level designer must place a sound object. As the player character approaches a sound object, the sound gets louder. 7.3.1 Creating a Sound Emitter 1) Select the Object Placement Tool. 2) In the Directory Pane, find and select 'records ->sounds -> soundobjects -> waterfall01'. 3) Place the object at the base of the waterfall. You will see a big green pillar. As the player gets closer to this object, the sound of the rushing water will get louder.
34
35
8.1 Portals
8.1.1 Creating a Portal Portals are built into certain types of objects. One of those objects is 'records -> underground -> naturalcave -> greecedngentrance_a01_ext.dbr', which is the cave object buried in the cliff face in the terrain region. That's one of the portals we'll be linking, but we still have to create one on the grid. 1) Select the Grid Edit tool. 2) Click on the grid region 'Tutorial-Connecting_To_Dungeons_Grid.lvl'. One way to create a portal on a grid is to drop an object that contains a portal, as one would on a terrain region. However, portals are also built into many grid features. 3) You will notice a chunk of floor missing. You must place the cave entrance feature on a spot that has no floor. 4) Select GreeceNatCave_EntranceG_Int01 from the feature list.
5) Place it in the gap. When you first place the entrance, it may be oriented incorrectly. To rotate it, press the left or right arrow key and click to place it again. The arrow keys rotate the feature placement 90 degrees, but you must place the feature again to see the rotate.
36
8.1.2 Linking Two Portals 1) Select the portal tool. 2) Click the higher ellipsis in the Link Portals Pane.
3) Select the portal at the cave entrance in the cliff on the terrain region. You will not be selecting the object itself, but the actual hole inside of the object.
You will notice a Portal number appear in the field next to the ellipsis. 4) Click the lower ellipsis in the Link Portals Pane.
5) Click on the plane on the open end of the entrance feature in the cave on the grid region. Rotate the camera so you are inside the cave, looking at the entrance feature.
37
You will notice another portal number appear in the field next to the lower ellipsis. 6) Click the 'Link' button in the Link Portals Pane.
Over each of the portals, the name of the terrain on which they are located will appear. Now the portals are linked. 7) Rebuild All Pathing and Rebuild All Maps for the sake of good habits. 8) Save All. 9) Open up the Art Manager. 10) Find and Build 'Tutorial-Connecting_To_Dungeon.map' in the 'Tutorial08\assets' folder. Now, if you play the map in game, the Portals are connected. Run the character into one of the portals, and the character appears at the linked portal.
8.2 Teleporting
Another way to move the player around the map is through teleportation. The user can be teleported via a trigger using the 'Teleport Player to N., N., N. )' action in the Quest Editor (Don't worry, I'll explain all about actions in the next tutorial). But how does one obtain the correct coordinates to teleport to? 8.2.1 Obtaining Teleport Coordinates 1) Open up a world in the Editor. 2) Open up a level in Editor Mode.
3) Center the camera on the point you wish to find the teleport coordinates for. 4) Select 'Camera -> Locate Coords' from the Menu Bar. A window displaying the X, Y, and Z coordinates for the point you are looking at will pop up.
38
39
9.1 Triggers
9.1.1 Quest Files The trigger we will be creating will be part of a previously existing quest. 1) Open up the Quest Editor. 2) Go to File -> Select Mod and choose Tutorial09 3) In the open file window, select and open 'CustomMaps -> Tutorial09 -> source -> Quests -> TutorialExperience_Trigger.qst'. You will see that the only thing in it right now is an entry called Only One Step. Triggers are grouped into steps to help the designer follow the flow of the mission better.
9.1.2 Creating the Trigger. 1) Select the step you will be adding the trigger to. 2) Click the 'Create New Trigger' button in the toolbar.
40
A new trigger will appear under the "Only One Step" step. 3) Select the step you just created. 4) You will see a list of properties in the Properties Pane at the base of the screen. To change a property, double click on the cell next to the property name, and type in a new value. 5) Enter the value "The Trigger" into the Name field of the trigger you created.
9.2 Conditions
A trigger is a set of conditions and actions such that when all of the conditions are met, the actions are performed. We'll start by creating the trigger's conditions. In this case, the condition that activates the trigger is when the player enters a specific area. 9.2.1 Creating a Condition 1) Select the Conditions entry under the trigger you wish to add the condition to.
This brings up the 'Add New Condition' window. Inside the window is a list of the possible condition types. 3) Select 'Enter Bounding Volume'.
4) Click the 'OK' button. The condition is set set to activate when the player enters a bounding volume, but we still have to specify which bounding volume. 5) Select the condition and look at the Properties Pane. You'll notice it has a property called BaseDatabaseRecord. This is where we establish which bounding volume the player has to enter to activate this trigger. 6) Click on the value field of the BaseDatabaseRecord property.
41
You'll notice that you can type the path in like you normally would on any other property. But you'll also notice there's an ellipsis on the right side of the field that you can click. If you click on this ellipsis it will take the value of whatever asset you have selected in the Asset Chooser Pane on the right. This is very helpful when you don't want to have to type a long, difficult path. 7) In the asset chooser, find and select '<root> -> CustomMaps -> Tutorial09 -> database -> Records -> TutorialSphere_Of_Experience.dbr'. 8) If it's not already selected, select the 'Enter Bounding Volume' condition you just created. 9) In the Properties Pane, select the data field of the BaseDatabaseRecord property, and click on the ellipsis.
The path to the Tutorial-Sphere_Of_Experience will appear on its own. So there we have it. The condition is set so that when the player enters the volume, something will happen. But what's going to happen? For that, we'll need to set up an action.
9.3 Actions
9.3.1 Creating an Action 1) Select the 'Actions' entry under the trigger to which you wish to add the action.
This brings up the 'Add New Action' window. The window features a list of all the possible action types. 3) Select 'Give Player N, N, N Experience'.
42
4) Press 'OK'. Now the trigger is set up to give the player experience when they enter the area, but we still have to establish how much. 5) Select the new action to view its properties. The three properties we are concerned with are ExperienceEpic, ExperienceLegendary, and ExperienceNormal. These determine how much experience will be given to the player depending on the difficulty setting. 6) You can set them to whatever value you want, but if you need some numbers, I set them all to 100.
5) Open the Editor, Choose Tutorial09, and select the .wrl file in the maps folder 6) In the menu bar, go to Quests -> Select Files and choose Tutorial-Experience_Trigger.qst 7) Save the level, return to the Art Manager, and build all again. Now we are ready to give this quest a whirl in-game!
43
9.4.3 Testing Your Trigger. 1) Fire up the Titan Quest game. 2) Select 'Custom Quest' from the main game menu 3) Select 'Tutorial09 ~ Tutorial-Sphere_of_Experience.map' in the Map Pane. 4) Select 'Start' 5) Direct the character into the fancy-tiled circle. If everything has been done correctly, you will see a notification that you have received some experience points.
44
3) You are now presented with a blank map. You need levels. 4) Select Region -> Add New Terrain (or Add New Grid). Choose a name and a size (NB: 256x256 is big). From here, you are ready to terraform, place structures, monsters, and people. However, for the time being, build the pathing and map, save all, and return to the Art Manger. In the art manager, you should find the files already added to the source tab. Your next task is to create the assets.
45
3) Build your mod! To create and attach quests involves a little more work. See Tutorial 12 for more information on incorporating quests into your mod.
46
The Very Giant Turtle will start off as just a copy of the giant turtle. 3) The imported record will be placed in the same place was found. This will create a lot of extra folders. You can find your newly imported turtle at Records -> Creature -> Monster -> Giant Turtle. For larger mods, you might want to move all your records (using copy and paste) into better organized files in the base folders, such as Monsters, NPCs, Quest etc. 4) Right click the record and select "Rename" from the context menu 5) Type in the new name of the .dbr. Rename it "Very_Giant_Turtle.dbr".
47
11.1.2 Editing a Database Entry Awesome, so now we have a new object type. But what will differentiate this from any other dumb old turtle? Well, for starters, he'll be about 5 times the size in every direction. To do that we'll need to edit a few of the properties of the Very Giant Turtle. 1) To bring up the Editing Record window, double click on the record you want to edit in the Folder Pane. The Record Editing Window consists of two panes. On the left is the Hierarchy Pane, which displays the hierarchy of property types for the object being described. On the right is the Properties Pane, where each of the properties and their values are displayed when a category of properties is selected. Each row is a different property and the columns give additional information about the property. The column we are most interested in is the column whose label is the name of the record we're editing, in this case, 'Very_Giant_Turtle.dbr'. Cells in this last column, or value cells, hold the actual value for each of the properties. 2) To change the value, double click on a cell and type in a new value. Many value cells will display an ellipsis when being edited. If the user clicks this ellipsis, that property will take the value of the path of any database record currently selected in the main Art Manager window, thus preventing the user from having to type in a long convoluted file path. We will be editing two properties in the group 'All Groups -> Actor Variables'. The variables are scale, which affects how large the turtle appears to be, and actorRadius, which affects how close another object can get to the center of the Turtle.
3) Select the 'All Groups -> Actor Variables' category in the Hierarchy Pane. 4) Select the value cell of the 'scale' property. 5) Set the value to '5'. 6) Select the value cell of the 'actorRadius' property. 7) Set the value to '5'.
8) Close the Record Editing Window. 11.1.3 Building a Database Entry Now that we've changed the values of the database record, we have to build the new values into the database from which the game reads. 1) Right click on the 'Tutorial11\database' folder. 2) Select 'Build' from the context menu.
48
Now that the new database record is built into the database, the user can find it and drop it in the Editor just as they would any other object. So now we know how to make a new object in Titan Quest. Have fun with it, play with the properties and put the objects into your level to see what new fun combinations of properties you can find.
49
12.1 Tokens
Tokens are a way of tracking events that have occurred. When an important quest event happens, the player can be assigned a token that signifies that it happened. Later on in the quest, a trigger can check to see what tokens the player has and determine what action it should take based on what the character has done. 12.1.1 Create a Token In the following example, we will be creating a token that will signify that the player has killed the satyr which can be checked to ensure the quest does not continue before all necessary events have occurred. 1) Click the Token Editor button. You will be prompted for a token file. Select tokens.bin from your mod folder.
The Add New Token Window will pop up. 3) Enter a name for your token in the text field in the New Token Pane of the Add New Token Window. In this case, name it 'Tutorial_Satyr_Killed'.
50
4) Click 'OK'. Your token has now been added to the token file. .
Set up the quest file's properties. 2) Select the New Quest file in the Files Pane. To change the value of a property in the Property Pane, first select the field on the right, next to the property name. Then type a value into the field. 3) Set 'QuestName' to 'Defeat The Satyr' Rewards are granted to the player when a quest is completed. By setting up reward values in the quest, the player can know what sort of reward they will receive for completing the quest. 4) Set 'RewardGoldEpic' to 200. 5) Set 'RewardGoldLegendary' to 300. 6) Set 'RewardGoldNormal' to 100. Note: These numbers dont grant the rewards, they just let the quest display what the reward will be. You must use give X actions to give the player various rewards.
12.2.2 Create the Steps Steps are a way of grouping together quest triggers by the various events that occur over the course of the quest. Start by creating the first step. 1) Click the 'Create New Quest Step' Button. 2) Select the quest step you just created 3) In the Properties Pane, set the Step's 'Name' property to Setup Now create the other three steps in the quest. 4) Click the 'Create New Quest Step' Button. 5) Change the new quest step's 'Name' property to Talk to the Villager 6) Create a new quest step. 7) Change the new quest step's 'Name' property to Kill the Satyr. 8) Create one last quest step 9) Change the new quest step's 'Name' property to Claim the Reward
51
12.2.3 Creating a Setup Trigger A setup trigger will help you initialize any settings for any objects in a quest that don't have a desirable default value. In this case, we want the 'Tutorial-Quest_Villager' to have an exclamation point over his head that will signal to the player that he is a primary objective. The trigger will have one condition, and that is the completion of level load. The action that will take place when that condition is met is that it will mark the Villager as a primary objective. This will place the gold exclamation point above the Villager's head. Start by creating the trigger. 1) Select the step Setup 2) Click the 'Create New Trigger' button in the toolbar near the top of the screen. 3) Rename the trigger to Set Up the Villager Now create the condition. 4) Select the 'Conditions' section underneath the trigger you just created 5) Click the 'Create New Condition' button in the toolbar near the top of the screen. This brings up the 'Add New Condition' window. This window displays all of the types of conditions that can set off actions. 6) Select the 'On Game Level Load' condition. Now, we will be creating the action. The 'Villager' will be marked as the primary objective. 7) Click the 'Create New Action' button near the top of the screen. This brings up the 'Add New Action' window. 8) Select 'Illuminate X as Primary' This action is set to illuminate something as primary. We have to establish what will be designated the primary objective. 9) Select the action you just created. 10) In the Properties Pane, select the right-most field for the action's 'Npc' property. 11) In the Asset Chooser Pane on the right, navigate to and select 'database -> NPCs -> Tutorial-Quest_Villager.dbr'. 12) Click on the ellipsis in the value field for the 'Npc' property of the action you most recently created. Thus completes our first trigger. When the level loads, the villager will be marked as having quest dialog. 12.2.4 Creating an Interaction Trigger. So how does a player get assigned a quest? In this case, they will find out about the quest when they talk to the villager. When the player talks to the villager, the villager will have something to say them, and the quest will be updated in their Quest Log. In the Quest Log, there are two tabs. One is the Summary which lists the mission objectives and describes what is going on in the mission. The other tab is the Dialog tab, which can be used to replay the dialog in which the player is informed of their quest.
52
Start by creating the trigger. 1) Select the second step, Talk to the Villager. 2) Click the 'Create New Trigger' button near the top of the window. 3) Rename the trigger Villager Gives Player Quest Now for the condition. 4) Create a condition for the Villager Gives Quest to Player trigger. 5) Select the 'On Interact with X' type condition. The condition is set up so that when the player interacts with something the actions will occur. We now have to set up what the player will interact with. 6) Select the Condition you just created. 7) Set its NPC property to the same tutorial-quest_villager.dbr. Now, when the player interacts with the Villager, something will happen. 8) Add an action to the trigger. Select Update Xs Dialog to X. This action has a special propery: in triggers like this (On Interact with X -> Update Xs Dialog to X), the dialog will update as you click on them. This NPC had no dialog until now, but when you click on him, were giving him something to say. Note that at other times, this update dialog action will change an NPCs dialog silently. Youll hear the new dialog the next time you click on them. 9) For the NPC field, add our good old NPC. For the DialogPak field, add Database -> dialog -> tutorialvillager_dialog_a.dbr. 10) We want to add this to the quest log as well, so add another action: Update This Quests Dialog Tab. Add the same dialog pak here. 11) Add one last action. This time it will be Update This Quests Map Marker. Here we have something different. The text for the quest objectives is stored in a file called ModStrings.txt, which is stored in the Text source folder. You can add entries by putting one tag per line. Each line should look like this: <tag>=<text>. 12) Type Q01Obj into the BulletPointTag field, and Q01Desc into the DescriptionTag field. 13) Set DoCompleteBulletPoint to false otherwise youd be completing the quest, instead of assigning it! Time to create the actions involved in updating the player's quest log.
53
8) Create an action for the Villager Gives Player Quest trigger. 9) Select the 'Update This Quest's Map Marker' action type. So, the quest's objectives will be updated on the quest log screen. We have to establish what the objective will say, where it will be, and whether it will be marked as complete or not. An objective's BulletPointTag is the title of the objective as it will appear in the quest objectives screen in-game. 10) Set the action's 'BulletPointTag' property to Kill The Monster. The objectives screen also displays a little blurb about the current state of the quest. 11) Set the action's 'DescriptionTag' property to "There is a monster attacking the village. Go kill it." We want the objective to be incomplete at this point. 12) Set the action's 'DoCompleteBulletPoint' property to 'false'. In our second trigger, you can talk to the villager in order to receive the quest. 12.2.5 Creating a Creature Death Trigger Now we will be creating a trigger that handles the actual killing of the monster. When the player kills the monster, they receive a token to indicate that they killed the monster. It also updates the objectives in the quest log. Finally, it marks the villager as the new primary objective. 1) Create a trigger in the Kill The Satyr quest step. 2) Rename the new trigger Get Credit for Killing the Monster 3) Create a new condition in the Get Credit for Killing the Monster trigger. 4) Select 'Kill Creature X' from the list of condition types. Establish which monster must be killed for this trigger to go off. 5) Select Database -> monsters -> tutorial-quest_satyr.dbr and transfer it to the CreatureDatabaseRecord field Later on we will need to check if the player has killed the monster yet, so we will have to give the player the token that will signify that he or she has killed the monster. 6) Create a new action in the Get Credit for Killing the Monster trigger. 7) Select the 'Give Token X' action type. 8) Select the 'Give Token X' action you just created. 9) Select the ellipsis in the data field of the Token property. 10) Select 'Tutorial_Satyr_Killed' from the Tokens Pane. Next, we should illuminate the Villager as a primary goal, so the player knows to go back to him to finish the quest. 12) Create a new action in the Get Credit for Killing the Monster trigger. 13) Select type 'Illuminate X as Primary from the Add New Action window. 14) Select the new action you just created. 15) Copy in tutorial-quest_villager.dbr Now we need to mark the Kill The Monster objective as complete. 16) Create a new action in the Get Credit for Killing the Monster trigger of type 'Update This Quest's Map Marker' 17) Set the new action's 'BulletPointTag' property to Q01Obj We should update it so that there is a checkmark next to it. 18) Make sure th enew action's 'DoCompleteBulletPoint' property to 'True' (it should be by default) But we should also add a new objective, telling the player to go back to the Villager. 19) Create a new action in the Kill the Monster trigger of type Update This Quest's Map Marker' 20) Set the new action's 'BulletPointTag' property to Q02Obj And we should update the quest's description blurb. 21) Set the new action's 'DescriptionTag' property to Q02Desc 22) Set the 'DoCompleteBulletPoint' property to 'False' 12.2.6 Finishing the Quest Now the player has to go back and talk to the Villager in order to claim their prize. 1) Create a new trigger in the Claim the Reward step. 2) Set this new trigger's 'Name' property to Talk To Guy To Finish Quest The first condition of this trigger is that it happens when the player talks to the Villager. 3) Add a new condition to the Talk To Guy To Finish Quest trigger of type 'On Interact with X'. 4) Set its NPC property to the same tutorial-quest_villager.dbr. However, we have to make sure first, that the player has killed the monster before giving the player their prize. 5) Add a new condition to the Talk To Guy To Finish Quest trigger of type 'Owns Token X'. 6) Set the new condition's 'Token' value to 'Tutorial_Satyr_Killed' So we'll start by changing the Villager's dialog. Now, instead of asking the player to save his village, he'll thank the player for saving it. 7) Add a new action to the Talk To Guy To Finish Quest trigger of type 'Update X's Dialog to X'. 8) Set the new action's 'DialogPak' property to 'Tutorial-Villager_Dialog_B.dbr'.
54
9) Set the new action's 'NPC' property to tutorial-quest_villager.dbr Now we'll change the objective marker to reflect that the player has successfully talked to the Villager. 10) Add a new action to the Talk to Guy to Finish Quest trigger of type 'Update This Quest's Map Marker'. 11) Set the new action's 'BulletPointTag' property to Return To The Villager. 12) Set the new action's 'DoCompleteBulletPoint' property to 'True' As the Villager promised, the player receives their monetary reward. 13) Add a new action to the Talk To Guy To Finish Quest trigger of type 'Give Player N,N,N gold'. 14) Select the new action. 15) Set the 'MoneyEpic' property to '200'. 16) Set the 'MoneyLegendary' property to '300'. 17) Set the 'MoneyNormal' property to '100'.
By marking this quest as completed, we ensure that the quest cannot be completed again by this character. 18) Add a new action to the Talk to Guy to Finish Quest trigger of type 'Complete Quest Now'. 19) Set the new action's 'QuestFile' property to 'Quests\Tutorial-Save_The_Village.qst'.
55
1) Open Tutorial-Save_The_Village.dbr to edit. 2) Select Config from the pane on the left. 3) Select the marekerButtonOverlay field in the fourth cell from the left and double-click the cell
4) Click the button to choose the file, and select quest -> tutorial-save_the_village_overlay.dbr 5) Change the following cells so they match the screenshot:
The MarkerBitmap fields can stay the same they are set to use the same map marker art as Titan Quest. 12.3.3 Creating a Quest Location Map Were almost there! 1) Edit Tutorial-QuestLocationMap.dbr 2) Under Config, edit the mapMarkers cell. A box will come up listing a number of fields. Each one is a quest. Delete all but one. 3) Double-click the remaining records value and click the button to locate our quest map marker 4) Navigate to Records\Quest\Tutorial-Save_The_Village_overlay.dbr
5) Press the OK button, close the record and save it. 6) Youre all set. Build your mod.
56
2) Find and open the Tutorial Save_The_Village.wrl' 3) Go the the Quest menu and click on Select Files. Choose your quest file. Next, we want to place all the quest objects: 1) Open 'Tutorial-Save_The_Village_Terrain.lvl' in Editor Mode. 2) Select the Object Placement Tool. Drop the special villager 3) Place a 'NPCs -> Tutorial-Quest_Villager' on the terrain. Drop the special satyr 4) Place a 'Monsters -> Tutorial-Quest_Satyr' on the terrain. Place a spawn point. 5) Drop a 'records -> controls -> spawnplayer' on the terrain. Finally: 1) Enter Layout Mode. 2) Select 'Build -> Rebuild All Maps' from the Menu Bar. 3) Select 'Build -> Rebuild All Pathing' from the Menu Bar. 4) Select 'File -> Save All' from the Menu Bar.
57