HandyNotes Plugin Documentation

Documentation for the core framework used in Zarillion's HandyNotes expansion plugins.

View the Project on GitHub zarillion/handynotes-plugins

Requirements

ns.requirement

Requirement (Base Class)

Base Class for all Requirements

Requirement({text = 'Requirement Text'})

Default Properites

Achievement

-- From project plugins - Requires specific achievement completion
ns.requirement.Achievement(40840) -- Adventurer of Azj-Kahet

-- Used in actual treasure nodes
map.nodes[65804182] = ns.node.Treasure({
    quest = 82720,
    requires = ns.requirement.Achievement(40840), -- Must complete zone achievement
    rewards = {Item({item = 224582})} -- Nerubian Currency
})

Currency

Currency(id, count)

GarrisonTalent

GarrisonTalent(id, text)

GarrisonTalentRank

GarrisonTalentRank(id, rank)

Item

-- From Azj-Kahet plugin - Requires specific key item
ns.requirement.Item(224783) -- Web-Entangled Key

-- Used in actual treasure node
cot.nodes[67013019] = ns.node.Treasure({
    quest = 82721,
    label = '{item:224783}',
    requires = ns.requirement.Item(224783), -- Web-Entangled Key needed
    rewards = {
        Item({item = 224584}), -- Memory Fragments
        Transmog({item = 223921}) -- Nerubian Skitterer's Cord
    }
}) -- Trapped Memory Cache

-- With quality for crafting materials
ns.requirement.Item(191784, 1, 5) -- Dragon Isles Blacksmithing Knowledge (Quality 5)

Profession

Profession(skillID, variantID, level)

Quest

-- From project plugins - Requires specific quest completion
ns.requirement.Quest(83287) -- A Spider's-Eye View

-- Used in profession treasure nodes
map.nodes[42835735] = ns.node.ProfessionTreasures.Alchemy({
    quest = 83847,
    id = 226272,
    requires = ns.requirement.Quest(83287), -- Must complete story quest first
    rewards = {Item({item = 224572})} -- Dark Apothecary's Vial
}) -- Alchemy Knowledge Treasure

-- Daily quest requirement
ns.requirement.Quest(57134, L['weekly_treasure'], true) -- Weekly treasure quest

Reputation

-- From Undermine plugin - Renown reputation requirement
ns.requirement.Reputation(2653, 6, true) -- The Cartels of Undermine (Renown 6)

-- From Dragonflight plugins - Traditional reputation levels
ns.requirement.Reputation(2507, 21, true) -- Dragonscale Expedition (Renown 21)
ns.requirement.Reputation(1272, 33600, false, true) -- Classic rep with point value

-- Used in actual treasure nodes
map.nodes[12345678] = ns.node.Treasure({
    quest = 90488,
    requires = ns.requirement.Reputation(2653, 6, true), -- Must be Renown 6
    rewards = {Transmog({item = 235835, type = L['cloak']})}
}) -- Braided Wire Wrap treasure

Spell

-- From Siren Isle plugin - Requires buff/spell effect
ns.requirement.Spell(1216785) -- Glittering Vault Shard

-- From Karesh plugin - Phase Diving ability
ns.requirement.Spell(1214374) -- Phase Diving

-- From Ratt's Revenge plugin - Special goggles effect
ns.requirement.Spell(463749) -- Starry-Eyed Goggles

-- Used in treasure nodes requiring active spell effects
map.nodes[26502340] = ns.node.Treasure({
    quest = 86732,
    requires = ns.requirement.Spell(1216785), -- Must have Glittering Vault Shard buff
    rewards = {Transmog({item = 233834, slot = L['dagger']})}
}) -- Stone Carver's Scramseax

Toy

-- From Ratt's Revenge plugin - Torch of Pyrreth toy requirement
ns.requirement.Toy(208092) -- Torch of Pyrreth

-- From Secrets of Azeroth - Various special toys
ns.requirement.Toy(206696) -- Tricked-Out Thinking Cap
ns.requirement.Toy(207730) -- Idol of Ohnahra

-- From Dragonflight plugins - Wyrmhole Generator
ns.requirement.Toy(198156) -- Wyrmhole Generator

-- Commonly used as constants
local TORCH = ns.requirement.Toy(208092) -- Torch of Pyrreth

-- Used in nodes requiring specific toys
map.nodes[12345678] = ns.node.Treasure({
    requires = ns.requirement.Toy(209944), -- Special toy needed
    rewards = {Item({item = 123456})}
})

WarMode

-- From Dragonflight plugin - War Supply Chest
ns.requirement.WarMode

-- Used in PvP content nodes
map.nodes[12345678] = ns.node.Treasure({
    label = '{npc:135238}',
    rlabel = ns.GetIconLink('war_mode_swords', 16),
    quest = {72376, 72377},
    requires = ns.requirement.WarMode, -- Must have War Mode enabled
    rewards = {
        Currency({id = 1602}) -- Conquest Points
    }
}) -- War Supply Chest