Evolisca LogoEvolisca WikiEvolisca.com
Filter by Category:
Showing 11 of 11 scripts

Farming

Open Cursed Chests

Farming

Automatically opens cursed chests within a set distance range

setDefaultTab('EVO')
UI.Separator()

local macroActive = true
local maxDistance = 6  

onTextMessage(function(mode, text)
  if text == "You are not the owner of this chest." or text == "You are not the owner." then
    macroActive = false
    schedule(10000, function() macroActive = true end)  
  end
end)

macro(500, "Advanced Monster Chest", function()
  if not macroActive then return end  

Pick Up Items From The Ground

Farming

Automatically picks up specific items from the ground and organizes them

function getItemWeightFromTooltip(tooltip)
  local weight = string.match(tooltip, "It weighs (%d+%.?%d*) oz")
  return tonumber(weight)
end

local cursedContainer = nil
local openedBag = false
local cursedBagsMacro = macro(1000, "Cursed Bags", function(selfMacro)
 local updateBagWeight = false
 local foundBag = false
 for _, container in pairs(g_game.getContainers()) do
   if container:getName() == "demon backpack" then
     cursedContainer = container
   elseif container:getName() == "cursed chest bag" then
     foundBag = true

Advanced Fishing

Farming

Automatically fishes when near water, handles fatigue, and has randomized timing

waterIds = {4596, 4597, 4598, 4599, 4600, 4601, 4602, 4603}

local fishableId = 4598
local rodId = 36554 -- Fishing rod ID
local fishDistance = 7
local fishingActive = true

onTextMessage(function(mode, text)
    if text:find("Sorry, you is too tired") then
        fishingActive = false
        schedule(30000, function() fishingActive = true end)
    end
end)

macro(50, "Adv Auto Fish",  function()

Mining

Farming

Automatically mines ore veins, finds nearest mineable tiles, and uses pickaxe

local mineableIds = {391, 6707, 10691, 7807, 19808, 7805, 9894, 7808}
local pickIds = {3456} 
local useDistance = 1
local moveDistance = 10

-- Check if the tile has a mineable ore
local function isMineableTile(tile)
    local thing = tile:getTopUseThing()
    return thing and table.contains(mineableIds, thing:getId())
end

-- Get first usable pick in inventory
local function getUsablePick()
    for _, id in ipairs(pickIds) do
        local item = findItem(id)

Movement

Advanced Player Follow

Movement

Precision follow script that tracks a leader player with advanced pathfinding

local panelName = "PrecisionFollow"
setDefaultTab("Main") 

storage[panelName] = storage[panelName] or {}
storage[panelName].enabled = storage[panelName].enabled or true

storage[panelName].leaders = storage[panelName].leaders or {}
storage[panelName].leaders.mainLeader = storage[panelName].leaders.mainLeader or "Main leader"
storage[panelName].leaders.followName = storage[panelName].leaders.followName or "Follow name"

local leaderPositions = {}
local leaderDirections = {}
local leader
local lastLeaderFloor
local standTime = now

Party

Party Healing

Party

Automatically heals party members based on priority and health thresholds

UI.Separator()
macro(100, "Sio - ED", function()
    local friend = getPlayerByName(storage.friendName)
    local friend1 = getPlayerByName(storage.friend1Name)
    local friend2 = getPlayerByName(storage.friend2Name)
  
    if friend and friend:getHealthPercent() < 95 then
        say("exura sio \"" .. storage.friendName)
        delay(500)
    elseif friend1 and friend1:getHealthPercent() <= 85 then
        say("exura sio \"" .. storage.friend1Name)
        delay(500)
    elseif friend2 and friend2:getHealthPercent() <= 80 then
        say("exura sio \"" .. storage.friend2Name)
        delay(500)

Tasks

Complete Tasks Automatically

Tasks

Automatically completes tasks by interacting with NPCs or using items

setDefaultTab("Main")

storage.taskMonster = storage.taskMonster or "Rotworm"
if not storage.taskItemId or storage.taskItemId == "" then
  storage.taskItemId = "36337"
end
storage.taskUseNpc = storage.taskUseNpc or false
storage.taskerEnabled = storage.taskerEnabled or false
storage.taskNpcName = storage.taskNpcName or "Grizzly Adams"

local ui = setupUI([[
Panel
  height: 19

  BotSwitch

Training

Magic Level Training

Training

Automatically trains magic level by casting spells within mana range

UI.Label("Mana training")
if type(storage.manaTrain) ~= "table" then
  storage.manaTrain = {on=false, title="MP%", text="utevo lux", min=80, max=100}
end

local manatrainmacro = macro(1000, function()
  if TargetBot and TargetBot.isActive() then return end -- pause when attacking
  local mana = math.min(100, math.floor(100 * (player:getMana() / player:getMaxMana())))
  if storage.manaTrain.max >= mana and mana >= storage.manaTrain.min then
    say(storage.manaTrain.text)
  end
end)
manatrainmacro.setOn(storage.manaTrain.on)

UI.DualScrollPanel(storage.manaTrain, function(widget, newParams) 

Utility

Eat Food

Utility

Automatically eats food items from containers when health regeneration is low

UI.Label("Eatable items:")
if type(storage.foodItems) ~= "table" then
  storage.foodItems = {3582, 3577}
end

local foodContainer = UI.Container(function(widget, items)
  storage.foodItems = items
end, true)
foodContainer:setHeight(35)
foodContainer:setItems(storage.foodItems)

macro(1000, "Eat Food", function()
  if isInPz() then return end
  if player:getRegenerationTime() > 400 or not storage.foodItems[1] then return end
  -- search for food in containers

Refill Stamina Under 40 Hours

Utility

Automatically uses stamina potion when below 40 hours (2400 minutes)

macro(5000, "Use Stamina Under 40h", function()
    if stamina() <= 2399 then
        use(g_game.findItemInContainers(22120))
    end
end)

Refill Stamina Under 14 Hours

Utility

Automatically uses stamina potion when below 14 hours (840 minutes)

macro(5000, "Use Stamina Under 14h", function()
    if stamina() <= 840 then
        use(g_game.findItemInContainers(22120))
    end
end)