There are two places you can create your own guides in
- Appending to the TourGuide addon
- Creating your own Addon Folder
We shall look at Creating your own Addon Folder here.
You will need to access the Interface/Addons folder of World of Warcraft, and then create a new folder. A sample folder name would be TourGuide_UserOwnGuide
Your folder will be filled with three types of files
- .toc - the detail of your addon supplemental files, so that it can be controlled from the Addon Menu
- .xml - a directory of your addon guides
- .lua - one for each guide you create.
You can either use a basic ASCII editor like Notepad, or you can obtain a custom program such as SciTE to create all these files.
AddOn List after creating all three files
Create a text file called TourGuide_MyOwnGuide.toc, and enter the following:
## Interface: 30200
## Title: Tour Guide - My Own Guides
## Notes: My Own Guides
## Author: Your Name
## Version: 1.00
## X-Category: User Guide
## RequiredDeps: TourGuide
## OptionalDeps: TomTom
## DefaultState: enabled
## LoadManagers: AddonLoader
## X-LoadOn-Always: delayed
Of course, you can change some of these elements to your own requirements, such as the Title, Notes, Author and version.
Create a text file called TourGuide_MyOwnGuide.xml, and enter the following:
You will need a line for every script file (.lua) that you have, with the exact filename. If it's not in this .xml file, it won't show up in the game
This is the guts of your guides, each guide should have it's own .toc file. Ensure you add the filename to the .xml file created above otherwise it won't show in the game. For this demonstration, create a text file called Guide1.lua, and as a bare minimum, enter:
TourGuide:RegisterGuide("Guide Title", nil, nil, function()
N Guide #1 |N|This is where your guide will go|
After you've completed all the above steps, load up the game and you should find your guide available to select. Of course, it doesn't have much in it, but everything has to start somewhere.
Customising your Guide
Okay, as said above, the .lua file is the guts of your guide, and that's where to put everything you need for your guide. So, lets go through it all to help you create a wonderful guide.
First off, the file we created above has the line
TourGuide:RegisterGuide("Guide Title", "NextGuide", Faction, function()
This has three customisable parts
- "Guide Title" - The title as displayed at the top of your guide list, inside Quote Marks
- The next guide to load up when the current guide is finished in Quote Marks (or enter nil without quotes to not open a new guide)
- The faction, enter "Alliance", "Horde" or nil (nil is without quotes, Alliance and Horde are with quotes)
Now you need to enter the guide entries one by one. You can use the TourGuide Recorder to help here, with that addon installed, typing /tgr will display a list of all logged entries of what you've just done. To manually create them, this is what you need to enter:
type DisplayTitle |tag|tagnotes|
These are the valid type that can be entered:
||Tells the user to accept a quest. Autocompletes when the objective name (minus "(Part 1)") is found in the quest log. Requires the tag |QID|####| below.
||Buy an item. If a |L|####| loot tag is provided, completes when the loot is received, otherwise completes when an item that matches the title is received. For title match use the format "[Item Name]"
||Do Quest Requirements
||Complete a quest's objectives. Kill something, loot something, whatever. This is only needed for quests that need you to do something before finishing it, such as kill something. Auto-completes when the title is found in the quest log and is marked "Complete" there.
||Directs player to fly to a destination. Completes on (sub-)zone change when the title matches the new zone or subzone name.
||Directs player to heathstone to a destination. Completes on (sub-)zone change when the title matches the new zone or subzone name.
||Kill a specific mob (usually many times). Can auto-complete with a |L|####| loot tag or quest-objective tag pair
||Displays a notation, ideal for including a request to loot something (Use with |L|...| tag) or with a quest pair of tags
||Directs player to run to a destination. Completes on (sub-)zone change when the title matches the new zone or subzone name.
||Turn in the quest. Like A and C, uses the title to complete when the quest is turned in.
||Use an item in your inventory, like a potion that allows you to see the quest mob. Completes when you use the item. Requires a |U|####| tag to function.
||Directs player to catch a boat to a destination. Completes on (sub-)zone change when the title matches the new zone or subzone name.
||Set your hearth to a new location. Auto-completes when it detects the text "<title> is now your home."
||Get Flight Point
||Remind the user to grab the flight point. Completes on the popup text "Discovered flight point". These should only be used if the flight point is out of the way and might not be seen on the minimap tracking.
These are the valid tag that can be entered:
||Creates a Note. This is displayed in the tooltip and in the objective frame. Entering a coordinate in the format "(12,34)", "12.3,45.6" or "12.34,56.78" in the note will automatically set up a TomTom waypoint.
||Quest ID - essential for any A, C and T tags. This quest ID identifies the quest being handled. Quest IDs can be found on wowhead, on most quest pages on the wiki as well as through other addons such as TourGuide Recorder
||The entry is not shown if the quest is not in the user's log. With A type, accompanied by either a |L| or |U| tag, the entry is not displayed if the player does not have the items needed.
||L|1234| or |L|1234 10|
||Objective auto-completes or is shown (if optional) when the user has the items. |
Takes an ItemID and optional quantity. If used with |O| on an ACCEPT objective, the objective will be skipped if the user does not have the item (and quantity) needed.
||An item to be used. Gives the user a button to click. Useful for quests where you must use an item on a mob, equip something, drink something, etc. Should not be used if the player must have an item to be able to interact with a node, only if the player is FORCED to open their bags and use the item. If used along with |O| on an ACCEPT objective, the objective will only appear if the user has the item to use.
||Used with the optional tag to only show a quest if another quest has been completed in the same guide. Note that the prerequisite quest must be optional as well, normal quests will appear to be complete if the user drops the quest and manually checks it off of the list.
||Only displays the objective if the player is of one of the classes listed. Useful for class-specific quests. Accepts multiple classes, and uses the localized name. |
|C|Warrior Paladin Hunter Rogue Priest Shaman Mage Warlock Druid|
||Only displayed if the player's race matches. Like |C|, multiple races are supported per objective, and it takes a localized value.|
For Horde only in a neutral guide, use |R|Orc Undead Tauren Troll BloodElf Goblin|
For Alliance only in a neutral guide, use |R|Human Gnome Dwarf NightElf Draenei Worgen|
||Overrides the mapping zone for the objective. If not defined the objective's waypoints will use the guide title for the zone. If the title isn't a valid zone name, the player's current zone is used. These should not be used heavily, if the player is changing locations to another zone and doing more than turnins, accepts and maybe one or two completes, a new guide should be started. Remember, relocation to a new quest hub usually means you should start a new guide!
||Supresses debug warnings for an objective. Use for quests that don't follow correct title case, for example [15-30] A Little Help From My Friends
||Q|Quest Name| |QO|Some Mob slain: 10/10|
||Completes when a sub-objective of the quest matches the QO tag. Both tags must be specified. Works with Note and Kill objectives. Like quest titles, this is case-sensitive and must match the quest log text EXACTLY.
||Signifies that an objective takes place in a "town". Changes the objective list's background color to provide a visual queue to the player.