Created: 2 days ago on 05/22/2025, 11:24:57 AMUpdated: 2 days ago on 05/22/2025, 11:26:17 AM
FileType: LUA
Size: 2940
Category: No category provided
Skills: Bowcraft/Fletcher
Hotkey: No hotkey provided
Tags: craft
Description: Take boards 1 by 1 in bank if skill is lower than 40, afterwards craft Bow.
Need to have fletchers tool in bag.
-- Constants
local GUMP_PANEL_ID = 2653346093 -- Verify Fletcher's gump ID
local TOOL_TYPE = 0x1022 -- Fletching Kit
local BOARD_TYPE = 0x1BD7
local BUTTON_MAKE_LAST = 21
local QT_BOARDS = 1
local craft = 2
-- Get tool serial
local tool = Items.FindByType(TOOL_TYPE, -1, 'backpack')
if not tool then
error("No fletching tool found in backpack.")
end
local toolSerial = tool.Serial
-- Retrieve boards from the bank
function getBoard()
local board = Items.FindByType(BOARD_TYPE, -1, 'bank')
if board then
if craft == 0 then
QT_BOARDS = 1
end
Player.PickUp(board.Serial, QT_BOARDS)
Pause(500)
Player.DropInBackpack()
Pause(600)
Messages.Print("Moved board to backpack.")
return true
else
Messages.Print("No boards found in bank.")
return false
end
end
-- Press the "Make Last" button
function craftLast()
if Gumps.IsActive(GUMP_PANEL_ID) then
Gumps.PressButton(GUMP_PANEL_ID, BUTTON_MAKE_LAST)
Pause(2000)
else
setToolCraft()
end
end
-- Get the Bowcraft/Fletching skill level
function getBowcraftValue()
return Skills.GetValue('Bowcraft/Fletching')
end
-- Set tool crafting category based on skill level
function setToolCraft()
local skillValue = getBowcraftValue()
if skillValue < 40 then
craft = 0
setToolGump(craft) -- Craft shafts
else
craft = 1
setToolGump(craft) -- Craft bows
end
end
-- Open tool gump and select the appropriate craft option
function setToolGump(craft)
Player.UseObject(toolSerial)
Pause(1000)
if craft == 0 then
-- Shafts
Gumps.PressButton(GUMP_PANEL_ID, 10)
Pause(1000)
Gumps.PressButton(GUMP_PANEL_ID, 9)
Pause(1000)
else
-- Bows
Gumps.PressButton(GUMP_PANEL_ID, 15)
Pause(1000)
Gumps.PressButton(GUMP_PANEL_ID, 3)
Pause(1000)
Gumps.PressButton(GUMP_PANEL_ID, 2)
Pause(1000)
end
end
-- Main process
setToolCraft()
Pause(4000)
while getBowcraftValue() < 40 do
getBoard()
craftLast()
end
while getBowcraftValue() >= 40 do
craftLast()
end