Last updated on: September 6, 2025

Navigation Maps & Extras

SecureCode

Description: Allows you to unlock WoW protected APIs.
Usage: SecureCode(WoWProtectedAPI)

-- Usage Example:

SecureCode("JumpOrAscendStart")

Interact

Description: Interact with any unit.
Usage: Interact(unit)

-- Usage Example:

Interact("target")
-- or 
local guid = UnitGUID("target")
Interact(guid)

ClickPosition

Description: Left clicks a position in the world. This is mainly useful for casting area of effect spells.
Usage: ClickPosition(x, y, z)

-- Usage Example:

local x, y, z = GetUnitPosition("target")
ClickPosition(x, y, z)
print(x, y, z)

FaceDirection

Description: Sets the facing of active player towards his target.
Usage: FaceDirection(radians, update)

-- Usage Example:

local function FaceUnit()
   local ax, ay, az = GetUnitPosition("player")
   local bx, by, bz = GetUnitPosition("target")
   local dx, dy, dz = ax-bx, ay-by, az-bz
   local radians = math.atan2(-dy, -dx)
   if radians < 0 then radians = radians + math.pi * 2 end
   FaceDirection(radians) -- update by default is true, change it to false if you don't want to update movement.
end
FaceUnit()

TraceLine

Description: Traces a line from one point to another and checking if there is anything in player way
Usage: TraceLine(sx, sy, sz, ex, ey, ez, flags) // s=start point, e= ending point.

-- Flags

M2Collision = 0x1
M2Render = 0x2
WMOCollision = 0x10
WMORender = 0x20
Terrain = 0x100
WaterWalkableLiquid = 0x10000
Liquid = 0x20000
EntityCollision = 0x100000

-- Usage Example:

local function Los()
   local ax, ay, az = GetUnitPosition("player")
   local bx, by, bz = GetUnitPosition("target")
   local flags = bit.bor(0x10, 0x100, 0x1)
   local hit,x,y,z = TraceLine(ax,ay,az+2.25,bx,by,bz+2.25,flags);
   return hit == 0
end
print(Los())

UnitFacing

Description: Returns the direction a unit is facing.
Usage: UnitFacing(unit)

-- Usage Example:

local function IsUnitFacing()
   local ax, ay, az = GetUnitPosition("player")
   local bx, by, bz = GetUnitPosition("target")
   local dx, dy, dz = ax-bx, ay-by, az-bz
   local rotation = UnitFacing("player");
   local value = (dy*math.sin(-rotation) - dx*math.cos(-rotation)) /
   math.sqrt(dx*dx + dy*dy)
   local isFacing = value > 0.25
   return isFacing
end
print(IsUnitFacing())

UnitScale

Description: Returns the scale of a unit.
Usage: UnitScale(unit)

-- Usage Example:

print(UnitScale('target'))

GetKeyState

Description: Returns the state of a key such as “RALT”, “RCONTROL”, “RSHIFT”..etc and returns a boolean.
Usage: GetKeyState(key)

-- Usage Example:

local isAltDown = (GetKeyState("LALT") == 1)
print(isAltDown)

GetWowAccountId

Description: Returns bnet account tag, id and wow account.
Usage: GetWowAccountId()

-- Usage Example:

print(GetWowAccountId())

GetUnitPosition

Description: Returns unit position.
Usage: GetUnitPosition(unit)

-- Usage Example:

local x, y, z = GetUnitPosition("player")
print(x,y,z)

GetCameraPosition

Description: Returns x, y, z camera position.
Usage: GetCameraPosition()

-- Usage Example:

local x, y, z = GetCameraPosition()
print(x,y,z)

GetLastClickPosition

Description: Returns last mouse click position.
Usage: GetLastClickPosition()

-- Usage Example:

local x, y, z = GetLastClickPosition()
print(x,y,z)

GetCorpsePosition

Description: Returns corpse position.
Usage: GetCorpsePosition()

-- Usage Example:

local x, y, z = GetCorpsePosition()
print(x,y,z)

IsSpellPending

Description: Checks if a cursor spell cast is pending.
Usage: IsSpellPending()

-- Usage Example:

Spellfunc = function()
  local pending = IsSpellPending()
  if pending == 64 then
    CancelPendingSpell()
  end
end
Spellfunc()

CancelPendingSpell

Description: Cancels a cursor spell cast that is pending.
Usage: CancelPendingSpell()

-- Usage Example:

Spellfunc = function()
  local pending = IsSpellPending()
  if pending == 64 then
    CancelPendingSpell()
  end
end
Spellfunc()

GetAngles

Description: Calculates angles between two units or two positions.
Usage: GetAngles(x1, y1, z1, x2, y2, z2) or GetAngles(unit1, unit2)

-- Usage Example:

local facing, pitch = GetAngles("player","target")

GetCameraRotation

Description: Returns camera rotation.
Usage: GetCameraRotation()

-- Usage Example:

local x, y, z = GetCameraRotation()
print(x,y,z)

SetCameraRotation

Description: Sets camera rotation.
Usage: SetCameraRotation(x,y,z)

-- Usage Example:

SetCameraRotation(0, 0, 0)

SetPitch

Description: Sets the player vertical pitch, in radian.
Usage: SetPitch(angle)

-- Usage Example:

SetPitch(1.5)

WorldToScreen

Description: Returns the screen location of a 3d game location on the screen.
Usage: WorldToScreen(x, y, z)

-- Usage Example:

local function MainWorldToScreen(wX, wY, wZ)
  local sX, sY, Visible = WorldToScreen(wX, wY, wZ)
  if not Visible and (not sX or sX == 0) and (not sY or sY == 0) then
    return false, false, false
  end
  return sX, -sY, Visible
end

ScreenToWorld

Description: Returns the screen 2D coordinates to 3D world coordinates.
Usage: ScreenToWorld(x, y, flags)

-- Flags

M2Collision = 0x1
M2Render = 0x2
WMOCollision = 0x10
WMORender = 0x20
Terrain = 0x100
WaterWalkableLiquid = 0x10000
Liquid = 0x20000
EntityCollision = 0x100000

-- Usage Example:

local x, y = GetCursorPosition()
local flags = bit.bor(0x10, 0x100, 0x1)
local wx, wy, wz = ScreenToWorld(x, y, flags)
print(wx, wy, wz)

ObjectIsQuestObjective

Description: Identifies GameObjects that are Quest Objectives
Usage: ObjectIsQuestObjective(object)

-- Usage Example:

for i = 1, GetObjectCount(), 1 do
  local object = GetObjectWithIndex(i)
  if ObjectIsQuestObjective(object) then 
    print(object)
  end
end

SetTargetUnit

Description: Sets a unit as a target.
Usage: SetTargetUnit(unit)

-- Usage Example:

SetTargetUnit("player")

Synchronous and Asynchronous

Description: Enables your bot to interact with HTTPS protocol.
Usage: Refer to below example

-- Asynchronous Example:

local function httpAsync(method, url, parameters, headers, callback)
   local id = InetRequest(method, url, parameters, headers)
   local function check()
      local res, status = InetGetRequest(id)
      if res then
         callback(res, status)
      else
         C_Timer.After(0.04, check)
      end
   end
   C_Timer.After(0.04, check)
end

local function httpHandler(res, status)
    if status == 200 then
      print(res)
   else
      print("Wrong Status '" .. status .. "' in response!")
   end
end

httpAsync(
   "GET",
   "example.com/", -- DO NOT USE PROTOCOL BEFORE THE DOMAIN
   "",
   "",
httpHandler)

IsGuid

Description: Verifies that a variable is a valid GUID. Returns 1 or nill.
Usage: IsGuid(guid)

-- Usage Example:

-- GUID
print(IsGuid("Creature-X-XXXX-XXXX-XX-XXXXXX-XXXXXXXXXX"))

-- Adding UnitGUID
print(IsGuid(UnitGUID("player")))

GetObjectCount

Description: Returns the count of all world objects, as well as the changes compared to the last call.
Usage: GetObjectCount()

-- Usage Example:

print(GetObjectCount())

GetObjectWithIndex

Description: Returns a specific world object by its index in the saved memory objects from the previous call to GetObjectCount.
Usage: GetObjectWithIndex(index)

-- Usage Example:

for i = 1, GetObjectCount(), 1 do
   local guid = GetObjectWithIndex(i)
   if IsGuid(guid) then
      print(guid)
   end
end

ObjectField

Description: Reads raw memory of a unit.
Usage: ObjectField(unit, offset, type)

-- Lua Types
Bool = 1
Char = 2
Byte = 3
Short = 4
UShort = 5
Int = 6
UInt = 7
Long = 8
ULong = 9
Float = 10
Double = 11
StringType = 12
IntPtr = 13
UIntPtr = 14
GUID = 15

-- Usage Example:

print(ObjectField("player", 0x18, 15)) -- Will print GUID

UnitField – Category Only (Not API)

Description: Returns unit field of API*.
Usage: API*(unit)
API*: Any listed API under UnitField.
Note: You can find unit defines here.

-- Usage Example:

print(UnitPitch("target"))
print(UnitSummonedBy("target"))
print(UnitCreatedBy("target"))
print(UnitTarget("target"))
print(UnitHeight("target"))
print(UnitFlags("target"))
print(UnitFlags2("target"))
print(UnitFlags3("target"))
print(UnitNpcFlags("target"))
print(UnitBoundingRadius("target"))
print(UnitCombatReach("target"))
print(UnitDynamicFlags("target"))
print(UnitAnimationFlags("target"))
print(UnitIsSkinnable("target"))
print(UnitIsLootable("target"))
print(UnitCastingTarget("target"))
print(UnitIsMounted("target"))
print(UnitIsOutdoors("target"))
print(UnitIsSubmerged("target"))
print(UnitStandStateType("target"))
print(UnitIsSitting("target"))
print(UnitSpecializationID("player"))

UnitCreatureTypeId

Description: Returns creature type.
Usage: UnitCreatureTypeId(unit)

Beast = 1
Dragonkin = 2
Demon = 3
Elemental = 4
Giant = 5
Undead = 6
Humanoid = 7
Critter = 8
Mechanical = 9
Not-specified = 10
Totem = 11
Non-combat Pet = 12
Gas Cloud = 13
Wild Pet = 14 -- Retail Only
Aberration = 15 -- Retail Only

-- Usage Example:

print(UnitCreatureTypeId("target"))

ObjectName

Description: Returns the display name of a unit.
Usage: ObjectName(unit)

-- Usage Example:

print(ObjectName("player"))

ObjectType

Description: Returns unit type.
Usage: ObjectType(unit)

-- Object Types

Object = 0
Item = 1
Container = 2
AzeriteEmpoweredItem = 3
AzeriteItem = 4
Unit = 5
Player = 6
ActivePlayer = 7
GameObject = 8
DynamicObject = 9
Corpse = 10
AreaTrigger = 11
SceneObject = 12
Conversation = 13
AiGroup = 14
Scenario = 15
Loot = 16
Invalid = 17

-- Usage Example:

print(ObjectType("player"))

ObjectExists

Description: Checks if object exits.
Usage: ObjectExists(unit)

-- Usage Example:

print(ObjectExists("target"))

GameObjectType

Description: Returns game object type.
Usage: GameObjectType(unit)

Door = 0
Button = 1
Questgiver = 2
Chest = 3 -- Herbs, Minerals, Chests
Binder = 4
Generic = 5
Trap = 6
Chair = 7
SpellFocus = 8
Text = 9
Goober = 10
TransportElevator = 11
AreaDamage = 12
Camera = 13
Mapobject = 14
MoTransportShip = 15
DuelFlag = 16
FishingNode = 17
Ritual = 18
Mailbox = 19
DONOTUSE1 = 20
GuardPost = 21
SpellCaster = 22
MeetingStone = 23
FlagStand = 24
FishingHole = 25
FlagDrop = 26
DONOTUSE2 = 27
DONOTUSE3 = 28
ControlZone = 29
AuraGenerator = 30
DungeonDifficulty = 31
BarberChair = 32
DestructibleBuilding = 33
GuildBank = 34
Trapdoor = 35
Newflag = 36
Newflagdrop = 37
GarrisonBuilding = 38
GarrisonPlot = 39
ClientCreature = 40
ClientItem = 41
CapturePoint = 42
PhaseableMO = 43
GarrisonMonument = 44
GarrisonShipment = 45
GarrisonMonumentPlaque = 46
ItemForge = 47
UILink = 48
KeystoneReceptacle = 49
GatheringNode = 50
ChallengeModeReward = 51
Multi = 52
SeigableMulti = 53
SeigableMo = 54
PvpReward = 55
PlayerChoiceChest = 56
LegendaryForge = 57
GearTalentTree = 58
WeeklyRewardChest = 59
ClientModel = 60

-- Usage Example:

for i = 1, GetObjectCount(), 1 do
   local guid = GetObjectWithIndex(i)
   if ObjectType(guid) == 8 then
      print(ObjectName(guid), GameObjectType(guid))
   end
end

ObjectID

Description: Returns the id of an object.
Usage: ObjectID(object)

-- Usage Example:

for i = 1, GetObjectCount(), 1 do
   local guid = GetObjectWithIndex(i)
   if ObjectType(guid) == 8 then
      print(ObjectName(guid), GameObjectType(guid), ObjectID(guid))
   end
end

GetMissileCount

Description: Returns the number of missiles.
Usage: GetMissileCount()

-- Usage Example:

print(GetMissileCount())

GetMissileWithIndex

Description: Returns the info of a specific missile.
Usage: GetObjectWithIndex(index)

-- Usage Example:

local draw = Draw:New()
DrawMissiles = function()
   local missileCount = GetMissileCount()
   draw:ClearCanvas()
   draw:SetColor(0, 255, 0, 255)
   if missileCount ~= 0 then
      for i = 1, missileCount do
         local spellID, spellVisualID, x, y, z, caster, sx, sy, sz, target, tx, ty, tz = GetMissileWithIndex(i)
         local facing = GetAngles(sx, sy, sz, x, y, z)
         if facing ~= 0 then
            draw:Arrow(x, y, z, facing, 2)
            draw:Text("Missile", "GameFontNormal", x, y, z)
         end
      end
   end
   C_Timer.After(0.01, DrawMissiles)
end

DrawMissiles()

MoveTo

Description: Clicks to move.
Usage: MoveTo(x, y, z)

-- Usage Example:

local x, y, z = GetUnitPosition("target")
MoveTo(x, y, z)

GetUnitMovementFlags

Description: Returns unit movement flags.
Usage: GetUnitMovementFlags(unit)

-- Movement Flags:

Forward = 0x1
Backward = 0x2
StrafeLeft = 0x4
StrafeRight = 0x8
TurnLeft = 0x10
TurnRight = 0x20
PitchUp = 0x40
PitchDown = 0x80
Walking = 0x100
Immobilized = 0x400
Falling = 0x800
FallingFar = 0x1000
Swimming = 0x100000
Ascending = 0x200000
Descending = 0x400000
CanFly = 0x800000
Flying = 0x1000000

-- Usage Example:

print(GetUnitMovementFlags("player"))

FindPath

Description: Finds a path between two positions for the given map ID
Usage: FindPath(mapId,x1, y1, z1, x2, y2, z2)
Note: By default, it will not swim in all liquids. To make it swim add a “true” parameter to end of FindPath parameters.

-- Usage Example:

function navToTarget()
   local px, py, pz = GetUnitPosition('player')
   local tx, ty, tz = GetUnitPosition('target')
   local mapId = GetMapID()
   local PathCnt = FindPath(mapId, px, py, pz, tx, ty, tz)
   if PathCnt == nil then
      print('Invalid or nil arguments!')
      return
   end
   if PathCnt == 0 then
      print('Navigation Finished.')
      return
   end
   if PathCnt == -1 then
      print('Map files not exists or invalid!')
      return
   end
   if PathCnt == -2 then
      print('Out of memeory!')
      return
   end
   if PathCnt == -3 then
      print('Map caching...')
   else
      MoveTo(GetPathNode(2))
   end
   C_Timer.After(0.04, navToTarget)
end
navToTarget()

GetPathNode

Description: Returns a path with path index
Usage: GetPathNode(pathIndex) : x, y, z
Note: By default, it will not swim in all liquids. To make it swim add a “true” parameter to end of FindPath parameters.

-- Usage Example:

function navToTarget()
   local px, py, pz = GetUnitPosition('player')
   local tx, ty, tz = GetUnitPosition('target')
   local mapId = GetMapID()
   local PathCnt = FindPath(mapId, px, py, pz, tx, ty, tz)
   if PathCnt == nil then
      print('Invalid or nil arguments!')
      return
   end
   if PathCnt == 0 then
      print('Navigation Finished.')
      return
   end
   if PathCnt == -1 then
      print('Map files not exists or invalid!')
      return
   end
   if PathCnt == -2 then
      print('Out of memeory!')
      return
   end
   if PathCnt == -3 then
      print('Map caching...')
   else
      MoveTo(GetPathNode(2))
   end
   C_Timer.After(0.04, navToTarget)
end
navToTarget()

SetMapsPath

Description: Changes the default maps locations to any path you set.
Usage: SetMapsPath(path)

-- Usage Example:

SetMapsPath("C:\\Maps\\")

ReadFile

Description: Reads file and returns its content.

Usage: ReadFile(path)

-- Usage Example:

ReadFile(GetExeDirectory() .. "example1.lua")
-- or
ReadFile(GetWowDirectory() .. "example2.lua")

WriteFile

Description: Writes a string to a file.

Usage: WriteFile(path, content, append)

-- Usage Example:

WriteFile(GetExeDirectory() .. "example1.lua", "example1", false)
-- or
WriteFile(GetWowDirectory() .. "example2.lua", "example2", false)

RenameFile

Description: Renames a file.

Usage: RenameFile(currentName, newName)

-- Usage Example:

RenameFile(GetExeDirectory() .. "example1.lua", GetExeDirectory() .. "example2.lua")
-- or
RenameFile(GetWowDirectory() .. "example2.lua", GetWowDirectory() .. "example1.lua")

GetWowDirectory

Description: Shows the directory path of wow.
Usage: GetWowDirectory()

-- Usage Example:

print(GetWowDirectory())

GetExeDirectory

Description: Returns Daemonic exe directory path
Usage: GetExeDirectory()

-- Usage Example:

print(GetExeDirectory())

GetDirectoryFiles

Description: Lists files in directory.
Usage: GetDirectoryFolders(path, pattern)

-- Usage Example:

print(GetDirectoryFiles(GetExeDirectory() .. "Example", "*"))

GetDirectoryFolders

Description: Lists folders in directory.
Usage: GetDirectoryFolders(path, pattern)

-- Usage Example:

print(GetDirectoryFolders(GetExeDirectory() .. "Test\\", "*"))

FileExists

Description: Check if file exists in path.
Usage: FileExists(path)

-- Usage Example:

print(FileExists(GetExeDirectory() .. "Example.lua"))

CreateDirectory

Description: Create a directory in specified path.
Usage: CreateDirectory(path)

-- Usage Example:

CreateDirectory(GetExeDirectory() .. "Example")
-- or
CreateDirectory(GetWowDirectory() .. "Example")

DirectoryExists

Description: Checks if directory exists in specified path.
Usage: DirectoryExists(path)

-- Usage Example:

print(DirectoryExists(GetExeDirectory() .. "Example"))
-- or
print(DirectoryExists(GetWowDirectory() .. "Example"))

IsWritablePath

Description: Checks if path is writable.
Usage: IsWritablePath(path)

-- Usage Example:

print(IsWritablePath(GetExeDirectory() .. "Example"))
-- or
print(IsWritablePath(GetWowDirectory() .. "Example"))

DeleteFile

Description: Delete any targeted files in path.
Usage: DeleteFile(path)

-- Usage Example:

DeleteFile(GetExeDirectory() .. "example1.lua")
-- or
DeleteFile(GetWowDirectory() .. "example2.lua")

DeleteDirectory

Description: Delete any targeted directory in path.
Usage: DeleteDirectory(path)
Note: Directory must not contain any files to get deleted successfully.

-- Usage Example:

DeleteDirectory(GetExeDirectory() .. "example1")
-- or
DeleteDirectory(GetWowDirectory() .. "example2")

EncryptAutoLoad

Description: Encrypt AutoLoad files for Daemonic client.
Usage: EncryptAutoLoad(inputFile path, outputFile path)

-- Usage Example:

EncryptAutoLoad(GetExeDirectory() .. "files\\inputFile.lua", GetExeDirectory() .. "files\\outputFile.lua")

EncryptString

Description: Encrypt string using any of the three different encryption types shown below.
Usage: EncryptString(string, key, type, iv) – (iv) is optional.
Note: Key must be 32 character length. Third and Fourth parameters (type & iv) are optional (type by default is 3). If (iv) is defined, type must be defined as well.
Types: 1. Encryption + Random Key, 2. Encryption + Compression + Key, 3. AES 256 Encryption + Key (default)

-- Usage Example:

-- Simple example
print(EncryptString("test", "12345678901234567890123456789012"))

-- Advanced
EncryptFile = function(inputFile, outputFile, Key)
   S = EncryptString(ReadFile(inputFile), Key)
   WriteFile(outputFile, S, false)
end

EncryptFile(GetExeDirectory() .. "inputFile.lua", GetExeDirectory() .. "outputFile.lua",  "12345678901234567890123456789012") 
-- Result is AES 256 encrypted outputFile.lua

DecryptString

Description: Decrypt string.
Usage: DecryptString(string, key, type, iv) – (iv) is optional.
Note: Key must be 32 character length. Third and Fourth parameters (type & iv) are optional (type by default is 3). If (iv) is defined, type must be defined as well.

-- Usage Example:

DecryptFile = function(inputFile, outputFile, Key)
   S = DecryptString(ReadFile(inputFile), Key)
   WriteFile(outputFile, S, false)
end

DecryptFile(GetExeDirectory() .. "outputFile.lua", GetExeDirectory() .. "outputFile2.lua",  "12345678901234567890123456789012") 
-- Result is decrypted outputFile2.lua

HashString

Description: Hash string using any of the three different Hash types as shown below.
Usage: HashString(string, type)
Types: 1. MD5, 2. SHA1, 3. SHA256 (default)

-- Usage Example:

-- Simple example
print(HashString("test", 3)) -- SHA256

-- Advanced
HashFile = function(inputFile, Type)
   S = HashString(ReadFile(inputFile), Type)
   return S
end

print(HashFile(GetExeDirectory() .. "inputFile.lua",  3)) 
-- Result is SHA256 hashed inputFile.lua

HmacString

Description: Hash string using any of the three different Hash types as shown below.
Usage: HmacString(string, key, type)
Types: 1. HMAC-MD5, 2. HMAC-SHA1, 3. HMAC-SHA256 (default)

-- Usage Example:

-- Simple example
print(HmacString("test", "12345678901234567890123456789012", 3)) -- HMAC-SHA256

-- Advanced
HmacFile = function(inputFile, Key)
   S = HmacString(ReadFile(inputFile), Key)
   return S
end

print(HmacFile(GetExeDirectory() .. "inputFile.lua", "12345678901234567890123456789012")) 
-- Result is HMAC-SHA256 inputFile.lua

Base64EncodeString

Description: Encode string to Base64.
Usage: Base64EncodeString(string)

-- Usage Example:

print(Base64EncodeString("Test"))

Base64DecodeString

Description: Decode Base64 string.
Usage: Base64DecodeString(string)

-- Usage Example:

print(Base64DecodeString("VGVzdA=="))

DecryptAndRunString

Description: Decrypt and runs encrypted string.
Usage: DecryptAndRunString(string, key, type)
Types: 1. Encryption + Random Key, 2. Encryption + Compression + Key, 3. AES 256 Encryption + Key (default)

-- Usage Example:

local function httpAsync(method, url, parameters, headers, callback)
   local id = InetRequest(method, url, parameters, headers)
   local function check()
      local res, status = InetGetRequest(id)
      if res then
         callback(res, status)
      else
         C_Timer.After(0.04, check)
      end
   end
   C_Timer.After(0.04, check)
end

local function httpHandler(res, status)
   if status == 200 then
      DecryptAndRunString(res,"12345678901234567890123456789012") -- default type (3)
   else
      print("Wrong Status '" .. status .. "' in response!")
   end
end

print("Try to run codes from the web (Jump)")
httpAsync(
  "GET", 
  "daemonic.cc/downloads/test.txt", -- DO NOT USE PROTOCOL BEFORE THE DOMAIN
  "", 
  "", 
  httpHandler)

LoadString

Description: Loads lua string.
Usage: LoadString(string, debugName)

-- Usage Example:

Loader = LoadString("C_Timer.After(2, function() print('TEST') end)")
Loader() -- will print TEST after two seconds

DecryptAndLoadString

Description: Decrypt and loads lua string
Usage: DecryptAndLoadString(EncryptedluaCode, Key, Type, IV, debugName)

-- Usage Example:

Loader = DecryptAndLoadString("EpAzxgPMY8vftN8gZlR1N38krVgr38bCoJxls0f3Hcy0GQxv1pSenPF/iTit4GTRZZ2rY1Ed5sgVUosPdn12UA==", "12345678901234567890123456789012")
Loader() -- will print TEST after two seconds

ResetAfk

Description: Calling this will make your player not go AFK.
Usage: ResetAfk()

-- Usage Example:

local function AntiAFK()
   ResetAfk()
   C_Timer.After(60, AntiAFK)
end
AntiAFK()

IsWindowActive

Description: Checks if game is active and foregrounded
Usage: IsWindowActive()

-- Usage Example:

print(IsWindowActive())

ActivateWindow

Description: Force window to foreground.
Usage: ActivateWindow()

-- Usage Example:

C_Timer.After(5, function()
    ActivateWindow()
end)

PlayWinSound

Description: Plays .wave sound.
Usage: PlayWinSound(waveFilePath)

-- Usage Example:

PlayWinSound(GetExeDirectoy() .. "start.wav")

GetSessionID

Description: Returns a unique ID per game process. This ID is fixed until the game process is closed.
Usage: GetSessionID()

-- Usage Example:

print(GetSessionID())

GetSessionIndex

Description: Returns the current session index.
Usage: GetSessionIndex()

-- Usage Example:

local sidx = GetSessionIndex()
print(sidx)

ReadMemory

Description: Reads raw memory of any address.
Usage: ReadMemory(MemAddress, Offset, Type)

-- Lua Types
Bool = 1
Char = 2
Byte = 3
Short = 4
UShort = 5
Int = 6
UInt = 7
Long = 8
ULong = 9
Float = 10
Double = 11
StringType = 12
IntPtr = 13
UIntPtr = 14
GUID = 15

-- Usage Example:

print(ReadMemory(0x12345678, 0, 14))

SetClipboardText

Description: Sets text to clipboard.
Usage: SetClipboardText(text)

-- Usage Example:

SetClipboardText("Test")

GetClipboardText

Description: Returns text from clipboard.
Usage: GetClipboardText()

-- Usage Example:

print(GetClipboardText())

GetDistance2D

Description: Returns 2D distance between units/objects.
Usage: GetDistance2D(x1, y1, z1, x2, y2, z2) or GetDistance2D(unit1, unit2)

-- Usage Example:

GetDistance2D("player", "target")

GetDistance3D

Description: Returns 3D distance between two units/objects.
Usage: GetDistance3D(x1, y1, z1, x2, y2, z2) or GetDistance3D(unit1, unit2)

-- Usage Example:

GetDistance3D("player", "target")

GetTileByPosition

Description: Returns player tile x,y coordinates.
Usage: GetTileByPosition(x,y,z)

-- Usage Example:

local x, y, z = GetUnitPosition("player")
print(GetTileByPosition(x,y,z))

UnloadMaps

Description: Unload maps from memory.
Usage: UnloadMaps()

-- Usage Example:

UnloadMaps()

KillSession

Description: Kills your session process.
Usage: KillSession()

-- Usage Example:

KillSession()

GetProductStatus

Description: Returns status of Daemonic product.
Usage: GetProductStatus(ProductNumber)

-- Usage Example:
-- 1: Retail
-- 2: Wotlk & Era (Classic)

print(GetProductStatus(1) == 0) -- returns true if you are using Daemonic Retail

IsInWorld

Description: Returns if player is in world.
Usage: IsInWorld()

-- Usage Example:

if IsInWorld() then
  print("Player is in world..")
end

WipeString

Description: Wipes string from game memory.
Usage: WipeString(string)

-- Usage Example:

local key = "ABCDEFGHIJKLMNOPQRSTUVWXYZ123456"
WipeString(key)
key = nil

GetAuraCount

Description: Returns the count of auras (including hidden ones).
Usage: GetAuraCount(unit, [spellId])

-- Usage Example:

local count = GetAuraCount('player')
print(count)

GetAuraWithIndex

Description: Returns the spellID, count, duration and expiration time of a specific aura.
Usage: GetAuraWithIndex(index)

-- Usage Example:

local count = GetAuraCount('player')
if count then
   for i = 1, count do
      local splId, count, duration, expirationTime = GetAuraWithIndex(i)
      local splName = GetSpellInfo(splId)
      local dispelType = GetSpellDispelType(splId)
      print(i, splName, splId, count, dispelType, duration, expirationTime)
   end
end

CompressString

Description: Data compression.
Usage: CompressString(string)

-- Usage Example:

local data = CompressString("Text to compress")
if DecompressString(data) == "Text to compress" then
 print("Decompress is ok")
end

DecompressString

Description: Data decompression.
Usage: DecompressString(string)

-- Usage Example:

local data = CompressString("Text to compress")
if DecompressString(data) == "Text to compress" then
 print("Decompress is ok")
end

GetSpellDispelType

Description: Returns dispel type.
Usage: GetSpellDispelType(spellID)

-- Usage Example:

local dispelName, dispelID = GetSpellDispelType(spellID)

GetDragonridingSpeed (Retail Only)

Description: Returns dragon riding horizontal and vertical speed.
Usage: GetDragonridingSpeed(unit)

-- Usage Example:

local horizontalMomentum, verticalMomentum = GetDragonridingSpeed("player")

ObjectMover

Description: Returns the transport the unit is moving on.
Usage: ObjectMover(unit)

-- Usage Example:

print(ObjectMover('player'))
print(ObjectName(ObjectMover('player')))
print(GetUnitPosition(ObjectMover('player')))

SetObjectField

Description: Sets any data for any given offset.
Usage: SetObjectField(unit, offset, type, data)
Note: Lua type must match ObjectField type.

-- Usage Example:

SetObjectField("player", 0x11C, 10, 1.5) -- Will set player pitch to 1.5 (Retail)

GameExpansion

Description: Returns wow game expansion.
Usage: GameExpansion()

-- Usage Example:

print(GameExpansion()) -- returns Retail, Classic, Classic_Era

EncryptCode

Description: Encrypt luaCode to be used with the following APIs:
– LoadStringEnc
– RequireCodeEnc
– RequireFileEnc
Usage: EncryptCode(luaCode)

-- Usage Example:

local codes = EncryptCode("print('test')")
LoadStringEnc(codes)()

LoadStringEnc

Description: Loads encrypted string from EncryptCode API.
Usage: LoadStringEnc(encryptedString, debugName)

-- Usage Example:

local codes = EncryptCode("print('test')")
LoadStringEnc(codes)()

GameWindowSize

Description: Returns actual widow size.
Usage: GameWindowSize()

-- Usage Example:

local width, height, scale = GameWindowSize()

GetCameraData

Description: Returns different camera data.
Usage: GetCameraData()

-- Usage Example:

local camX, camY, camZ, matrixYX, matrixYY, matrixYZ, matrixZX, matrixZY, matrixZZ, matrixXX, matrixXY, matrixXZ, camFov, camYaw, camPitch, camRoll =  GetCameraData()

UnitStandStateType

Description: Returns the unit stand state type.
Usage: UnitStandStateType(unit)

-- Usage Example:

STAND				= 0,
SIT					= 1,
SIT_CHAIR			= 2,
SLEEP				= 3,
SIT_LOW_CHAIR		= 4,
SIT_MEDIUM_CHAIR	= 5,
SIT_HIGH_CHAIR		= 6,
DEAD				= 7,
KNEEL				= 8,
SUBMERGED			= 9,

print(UnitStandStateType("player"))

SendMovementHeartbeat

Description: Sends a heartbeat packet to the server.
Usage: SendMovementHeartbeat()

-- Usage Example:

FaceDirection(angle, false)
SendMovementHeartbeat()

GetScreenshot

Description: Take screenshot of wow window and save it near unlocker exe.
Note: Filename format: MMDDYY_HHMMSS_mapID_X_Y_Z.
Usage: GetScreenshot(filepath)

-- Usage Example:

GetScreenshot() -- Will save the screenshot with the following format: MMDDYY_HHMMSS_mapID_X_Y_Z
GetScreenshot(GetExeDirectory() .. "GatherBot.jpg") -- Will save the screenshot under the name of "GatherBot" in the provided path

MinimizeWindow

Description: Minimizes WoW window.
Usage: MinimizeWindow()

-- Usage Example:

MinimizeWindow()

GetUnitRawPosition

Description: Returns the raw position of unit.
Usage: GetUnitRawPosition(unit)

-- Usage Example:

local x, y, z = GetUnitRawPosition("player")
print(x,y,z)

UnitRawFacing

Description: Returns the raw direction a unit is facing.
Usage: UnitRawFacing(unit)

-- Usage Example:

print(UnitRawFacing("player"))

ClearTargetUnit

Description: Clears current target.
Usage: ClearTargetUnit()

-- Usage Example:

ClearTargetUnit()

GetMapID

Description: Returns current MapID.
Usage: GetMapID()

-- Usage Example:

print(GetMapID())

MoveWindow

Description: Moves and resizes game window to desired screen coordinates and size.
Usage: MoveWindow(x, y, w, h)

-- Usage Example:

MoveWindow(0, 0) -- will move window to top left

MoveWindow(0, 0, 1360, 768) -- will move window to top left and resize window to 1360x768

UnitEffect

Description: Returns unit effect spellID and location (x,y,z).
Usage: UnitEffect(unit)

-- Usage Example:

local x, y, z, spellID = UnitEffect(unit)

CopyFile

Description: Copies file from source path to destination.
Usage: CopyFile(SrcFile, DestFile)

-- Usage Example:

CopyFile(GetExeDirectory() .. "file.lua", GetWowDirectory() .. "Interface\\AddOns\\file.lua")

CopyDirectory

Description: Copies directory and all included files and sub directories from source path to destination.
Usage: CopyDirectory(SrcDir, DestDir)

-- Usage Example:

CopyDirectory(GetExeDirectory() .. "MyAddonFolder", GetWowDirectory() .. "Interface\\AddOns\\MyAddonFolder")

RemoveDirectory

Description: Removes directory and all included files and sub directories.
Usage: RemoveDirectory(DirPath)

-- Usage Example:

RemoveDirectory(GetExeDirectory() .. "MyAddonFolder")

RequireCode

Description: Runs lua codes provided in the code parameter.
Usage: RequireCode(code, debugname, [variables])

-- res1: Return code running status (true or false).
-- res2: Returned data by code or error information or nil.
-- debugname: Will be displayed in errors, e.g: file name.
-- variables: Will be passed to the codes by order.

-- Usage Example:

local var1 = 1000
local code = "local var1 = ...; var1 = var1 + 1; return var1;"
local res1, res2 = RequireCode(code, "testcode", var1)
if res1 then
  print("result is:", res2)
else
  print("error is:", res2)
end

RequireCodeEnc

Description: Runs encrypted lua codes provided in the code parameter which is encrypted using “EncryptCode”.
Usage: RequireCodeEnc(code, debugname, [variables])

-- res1: Return code running status (true or false).
-- res2: Returned data by code or error information or nil.
-- debugname: Will be displayed in errors, e.g: file name.
-- variables: Will be passed to the codes by order.

-- Usage Example:

local mybot = {}
local res1, res2 = RequireCodeEnc(encryptedcode, "testcode", mybot)

RequireFile

Description: Runs lua file provided in the file parameter.
Usage: RequireFile(file, [variables])

-- res1: Return code running status (true or false).
-- res2: Returned data by code or error information or nil.
-- variables: Will be passed to the codes by order.
-- File path must be relative and only from client directory and sub directories.

-- Usage Example:
  
local mybot = {}
local res1, res2 = RequireFile("file.lua", mybot)

RequireFileEnc

Description: Runs encrypted lua file provided in the file parameter which is encrypted using “EncryptCode”.
Usage: RequireFileEnc(file, [variables])

-- res1: Return code running status (true or false).
-- res2: Returned data by code or error information or nil.
-- variables: Will be passed to the codes by order.
-- File path must be relative and only from client directory and sub directories.

-- Usage Example:
  
local mybot = {}
local res1, res2 = RequireFileEnc("encryptedfile.lua", mybot)

JsonEncode

Description: Encode lua table to json string.
Usage: JsonEncode(table)

-- Usage Example:
  
local tbl = {sale = true}
print(JsonEncode(tbl))

JsonDecode

Description: Decode json string to lua table.
Usage: JsonDecode(string)

-- Usage Example:
  
local tbl = JsonDecode('{"sale":true}')
if tbl.sale then
  print('sale is true')
else
  print('sale is false')
end

Draw

-- Usage Example:
  
function Draw:WorldToScreen(wx, wy, wz)
function Draw:CameraPosition()
function Draw:SetColor(r, g, b, a)
function Draw:SetAlpha(a)
function Draw:SetWidth(width)
function Draw:HexToRGB(hex)
function Draw:SetColorFromObject(object)
function Draw:GetColorFromObject(object)
function Draw:Distance(ax, ay, az, bx, by, bz)
function Draw:Distance2D(ax, ay, bx, by)
function Draw:RotateX(cx, cy, cz, px, py, pz, rot)
function Draw:RotateY(cx, cy, cz, px, py, pz, rot)
function Draw:RotateZ(cx, cy, cz, px, py, pz, rot)
function Draw:Line(sx, sy, sz, ex, ey, ez, drawAlways)
function Draw:Line2D(sx, sy, ex, ey)
function Draw:Circle(x, y, z, radius, steps)
function Draw:GroundCircle(x, y, z, radius, steps)
function Draw:Outline(x, y, z, radius)
function Draw:FilledCircle(x, y, z, radius)
function Draw:Arrow(x, y, z, rot, size)
function Draw:Cross(x, y, z, size)
function Draw:Arc(x, y, z, size, arc, rot)
function Draw:FilledArc(x, y, z, size, arc, rot)
function Draw:Cylinder(x, y, z, radius, height)
function Draw:Text(text, font, x, y, z, progress)
function Draw:Rectangle(x, y, z, width, length, rot, offsx, offsy)
function Draw:Cube(x, y, z, width, length, height, rot, offsx, offsy)
function Draw:Pyramid(x, y, z, size, height, rot, offsx, offsy)
function Draw:FilledRectangle(x, y, z, width, length, rot, offset)
function Draw:Texture(config, x, y, z, alphaA)
function Draw:ClearCanvas()
function Draw:Update()
function Draw:Helper()
function Draw:Enable()
function Draw:Disable()
function Draw:Enabled()
function Draw:Sync(callback)
function Draw:New(canvas)

GetHWID

Description: Gets hardware ID.
Usage: GetHWID()

-- Usage Example:
  
print(GetHWID())

EnableAntiCapture

Description: Prevent screenshots and recordings.
Usage: EnableAntiCapture()

-- Usage Example:
  
EnableAntiCapture()

FindClosestPointOnMesh

Description: Finds closest point on mesh at a given threshold.
Usage: FindClosestPointOnMesh(mapid, x, y, z, dx, dy, dz)

-- Usage Example:
  
local tx, ty, tz = GetUnitPosition('target')
local mapId = GetMapID()
local res, x, y, z = FindClosestPointOnMesh(mapId, tx, ty, tz, 0, 0, 200)
if res == nil then
  print('Invalid or nil arguments!')
elseif res == 0 then
  print('Not found any closest point!')
elseif res == -1 then
  print('Map files not exists or invalid!')
elseif res == -2 then
  print('Out of memeory!')
elseif res == -3 then
  print('Map caching...')
else
  print(x, y, z)
end

SetMouseOverObject

Description: Sets mouse over object.
Usage: SetMouseOverObject(object)

-- Usage Example:
  SetMouseOverObject(object)

StopFalling

Description: Stops you from falling.
Usage: StopFalling()

-- Usage Example:
  
SecureCode("JumpOrAscendStart")
C_Timer.After(0.4, function() StopFalling() end)

SetGlobalVar

Description: Sets the value for a global variable (will not destroy after reload).
Usage: SetGlobalVar(name, data)

-- Usage Example:
  
SetGlobalVar("test", "test data")

GetGlobalVar

Description: Gets the value of the global variable previously set by SetGlobalVar.
Usage: GetGlobalVar(name)

-- Usage Example:
  
local data = GetGlobalVar("test")

ReloadGame

Description: Reloads the game.
Usage: ReloadGame()

-- Usage Example:
  
ReloadGame()

IsInGlue

Description: Return if account is in Glue Screen.
Usage: IsInGlue()

-- Usage Example:
  
if IsInGlue() then
  -- you are in GlueScreen
end

DisconnectFromServer

Description: Quickly disconnects user from server.
Usage: DisconnectFromServer()

-- Usage Example:
  
if IsInWorld() then
  DisconnectFromServer()
end