Fairytale messagebox critical CAUTION! There are a number of things wrong with this tutorial as it stands:
 * The build is not up to date
 * The quest is not added to the map
 * References throughout are not found 
 * The modstring.txt is empty and no asset has been created for it 
 * The satyr's controller does not exist.
 * questwindow.dbr has not been imported and overridden   

(I suspect wrong assumptions were made about the whereabouts and names of files, or they were changed after the tutorial was written. Build before starting the Editor. Then add the quest to the map, renew all references in the quest and in the villager and dialog .dbr's, and finally mend the Satyr's controller (satyrfodder01 instead of Satyr01). This will allow the quest to work. If you want to see the quest UI window, you must also import and edit questwindow.dbr. But all that is no work for a newbie.)

So we know how to create a world, make interesting terrain, and throw some enemy dudes at the player. But what if the player wants more motivation for killing monsters than money and XP? For that, we need to assemble quests. Each quest file helps organize both the actions that the game needs to take to progress and the conditions that trigger these actions. Triggers can be set up to do everything from opening doors, to killing objects, to giving Skill Points. For this example, we are going to be working with a simple "go kill the monster that's terrorizing the people" quest. The player starts off by talking to a Villager. When the player talks to the Villager, the Villager tells the player to go kill the Monster. The player then goes and kills the Monster. When the player returns to the Villager, the Villager gives the player a reward. The quest and all related database records already exist. All we need to do is place the objects used in that quest into our map, and the quest will run when a player plays on our map.

Checking Out the Environment Edit

  1. Open the Editor.
  2. Select the ‘Tutorial04’ mod, and open ‘Tutorial-Quest_Objects.wrl.’

We have a world with some nice terrain and a few decorations. More importantly though, we have a quest object that is vital to this quest. This quest object is the Villager. The Villager is the fat old man standing next to his hut. However, we're missing an object that is vital to this mission. If the Villager is going to tell the player to go kill the Monster, we had best make sure there is a Monster present for the player to kill.

Placing a Quest Object Edit

For this tutorial a unique object called 'Tutorial-Quest_Satyr' was created. He is just like an 'am_peltast_02' type satyr, but this particular Quest Satyr is necessary to complete this particular quest.

  1. Load up the level 'custommaps\Tutorial04\source\Tutorial-Quest_Objects_Terrain.wrl'.
  2. Select the Object Placement Tool.
  3. Expand the “Monsters” tree, and select “tutorial-quest_satyr” (All the standard Titan Quest assets are under the “records” tree. When you create your own database records, they will appear under the folders you create them in, and appear around the “records” folder. When you import records, you should move it to your own folders, otherwise it will appear hidden somewhere deep under “records”.)
  4. Place the 'Tutorial-Quest_Satyr' anywhere in the level you like simply by left-clicking at that spot on the map. You can alter the player's experience just based on where you put it. The player may have to battle their way up the side of a mountain or face an ambush in the valley depending on which you think would be more fun. The point is, the trigger for this particular quest is based on a specific object type.

Build and Save the Map Edit

Don't forget to build and save when you're done editing the world.

  1. Rebuild all pathing meshes and maps if you changed the scenery or terrain at all.
  2. Select 'File -> Save All' in the Menu Bar in the Editor.
  3. Open the Art Manager.
  4. Build ''.
  5. Try out your map in game.

-- Next page: Tutorial 05: Advanced Terrain

Community content is available under CC-BY-SA unless otherwise noted.