-
Notifications
You must be signed in to change notification settings - Fork 2
Guide Pack API
Developer reference for building guide pack addons for GuidelimeVanilla.
Guide packs are separate WoW addons that register guides with GuidelimeVanilla using the LibStub API. GuidelimeVanilla provides the guide engine, navigation, and tracking — guide packs provide the content.
Register a guide with the system.
local GLV = LibStub("GuidelimeVanilla")
GLV:RegisterGuide([[
[N 1-11 Elwynn Forest]
[GA Alliance]
[D My custom guide]
[QA 783] Accept "A Threat Within"
[NX 11-15 Westfall]
]], "My Guides", "GuidelimeVanilla_MyGuides")| Parameter | Type | Required | Description |
|---|---|---|---|
guideText |
string | Yes | Guide content with tagged format (see Tag Reference) |
groupName |
string | Yes | Guide pack name (e.g., "My Guides"). All guides with the same group appear together |
addonName |
string | No | Addon folder name for metadata lookup (used to read .toc Notes) |
Register which guide should load first for each player race.
GLV:RegisterStartingGuides("My Guides", {
["Human"] = "Elwynn Forest",
["Dwarf"] = "Dun Morogh",
["Gnome"] = "Dun Morogh",
["NightElf"] = "Teldrassil",
["Orc"] = "Durotar",
["Troll"] = "Durotar",
["Tauren"] = "Mulgore",
["Undead"] = "Tirisfal Glades",
})| Parameter | Type | Required | Description |
|---|---|---|---|
packName |
string | Yes | Must match the groupName used in RegisterGuide
|
raceMapping |
table | Yes | Table mapping race names to starting guide names |
The guide name in the mapping must match the name from the [N] tag (without the level range).
Register your addon folder name for metadata lookup:
GLV.guidePackAddons["My Guides"] = "GuidelimeVanilla_MyGuides"This allows GuidelimeVanilla to read your addon's .toc metadata (e.g., ## Notes: field).
Register a talent template. See Creating a Talent Template for full documentation.
GLV:RegisterTalentTemplate("MAGE", "Frost Leveling", "leveling", {
[10] = {3, 1, 2},
[11] = {3, 1, 2},
-- ...
})GuidelimeVanilla_MyGuides/
├── GuidelimeVanilla_MyGuides.toc
├── init.lua
└── Guide_Zone.lua
## Interface: 11200
## Title: Guidelime Vanilla - My Guides
## Notes: Custom leveling guides
## Dependencies: GuidelimeVanilla
init.lua
Guide_Zone.lua
Key points:
-
## Dependencies: GuidelimeVanillaensures load order -
## Notes:is displayed in the guide pack selection dropdown - New
.tocentries require a full game restart
local GLV = LibStub("GuidelimeVanilla")
if not GLV then
DEFAULT_CHAT_FRAME:AddMessage("|cFFFF0000[My Guides]|r GuidelimeVanilla is required!")
return
end
GLV.guidePackAddons["My Guides"] = "GuidelimeVanilla_MyGuides"
-- Optional: Register starting guides for auto-selection
GLV:RegisterStartingGuides("My Guides", {
["Human"] = "Elwynn Forest",
-- Add more races as needed
})local GLV = LibStub("GuidelimeVanilla")
GLV:RegisterGuide([[
[N 1-11 Elwynn Forest]
[GA Alliance]
[QA 783] Accept "A Threat Within"
[G 48,42 Elwynn Forest][QT 783] Turn in
[NX 11-15 Westfall]
]], "My Guides")| Alliance | Horde |
|---|---|
| Human | Orc |
| Dwarf | Troll |
| Gnome | Tauren |
| NightElf | Undead |
TurtleWoW adds custom races that are automatically aliased to standard races if your guide pack doesn't include explicit mappings:
| Custom Race | Aliased To |
|---|---|
| HighElf | NightElf |
If you register a HighElf entry in RegisterStartingGuides, it takes priority over the alias. Otherwise, a HighElf player gets the NightElf starting guide.
When a guide pack is loaded, GuidelimeVanilla selects a guide using this priority:
- Saved guide: if the player previously loaded a guide from this pack, resume it
-
Race-based (level 1-11): use
RegisterStartingGuidesmapping for the player's race -
Level-based: find the best guide for the player's current level
- First match where player level is within the guide's
[N min-max]range - Guides are sorted by
minLevelthennamefor deterministic selection
- First match where player level is within the guide's
- Guides are filtered by player faction/race (via
[GA]tag) - Sorted by level range, then alphabetically
- When there are more than 30 guides, the dropdown auto-groups into level range submenus (1-10, 11-20, 21-30, etc.)
- Guides without a
[GA]tag are shown to all players
The [GA] tag in guide text controls visibility:
[GA Alliance] -- Alliance only
[GA Horde] -- Horde only
[GA Horde,Undead] -- Horde faction AND Undead race
Without [GA], the guide is visible to all players.
Guides link together via [NX]:
[NX 11-15 Westfall]
The name must match the [N] tag of the target guide. When the player clicks "Next Guide" in the navigation frame, GuidelimeVanilla searches the active pack for a guide matching that name and level range.
- Keep one guide per
.luafile for maintainability - Use consistent naming:
Guide_ZoneName.lua - Quest IDs can be found on TurtleWoW database sites or in
Assets/db/data files - NPC IDs (for
[TAR]) are inVGDB.units.data - Test with
/reloadfor file edits, full restart for new.tocentries - Set
GLV.Debug = trueinCore.luafor verbose debug output