<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/">
	<channel>
		<title><![CDATA[OTBots Forums - Requests]]></title>
		<link>https://forums.otbots.com/</link>
		<description><![CDATA[OTBots Forums - https://forums.otbots.com]]></description>
		<pubDate>Thu, 17 Sep 2026 14:04:59 +0000</pubDate>
		<generator>MyBB</generator>
		<item>
			<title><![CDATA[Pick UP Spears ground]]></title>
			<link>https://forums.otbots.com/Thread-Pick-UP-Spears-ground--2984</link>
			<pubDate>Thu, 26 Sep 2024 13:25:50 -0500</pubDate>
			<dc:creator><![CDATA[<a href="https://forums.otbots.com/member.php?action=profile&uid=15506">pitchinin</a>]]></dc:creator>
			<guid isPermaLink="false">https://forums.otbots.com/Thread-Pick-UP-Spears-ground--2984</guid>
			<description><![CDATA[help me pick up spears on the ground in the nosthalter because the tool doesn't work properly]]></description>
			<content:encoded><![CDATA[help me pick up spears on the ground in the nosthalter because the tool doesn't work properly]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[FORCE REFILL]]></title>
			<link>https://forums.otbots.com/Thread-FORCE-REFILL--2906</link>
			<pubDate>Sun, 19 May 2024 05:00:01 -0500</pubDate>
			<dc:creator><![CDATA[<a href="https://forums.otbots.com/member.php?action=profile&uid=17619">wizz</a>]]></dc:creator>
			<guid isPermaLink="false">https://forums.otbots.com/Thread-FORCE-REFILL--2906</guid>
			<description><![CDATA[Hello Im trying to force my cavebot to go to X waypoint and DROP loot, if I have less than X cap.<br />
<br />
1. Create an 2 Actions in Cavebot:<br />
<br />
#1 Waypoint.<br />
<div class="codeblock"><!--<div class="title" style="user-select: none;">Code:</div>--><div class="title" style="user-select: none;"><a href="#" onclick="selectCode(this); return false;">(COPY)</a></div><div class="body" dir="ltr"><code>status = 'no drop'</code></div></div><br />
#X waypoint since this waypoint is just before all I want to do and labeled "DROP"<br />
<div class="codeblock"><!--<div class="title" style="user-select: none;">Code:</div>--><div class="title" style="user-select: none;"><a href="#" onclick="selectCode(this); return false;">(COPY)</a></div><div class="body" dir="ltr"><code>status = 'drop'</code></div></div><br />
<br />
2. Create a LUA script on Cavebot:<br />
<div class="codeblock"><!--<div class="title" style="user-select: none;">Code:</div>--><div class="title" style="user-select: none;"><a href="#" onclick="selectCode(this); return false;">(COPY)</a></div><div class="body" dir="ltr"><code>captodrop = 40<br />
<br />
if cap() &lt;= captodrop and status == 'no drop' then<br />
&nbsp;&nbsp;gotolabel('DROP')<br />
end</code></div></div><br />
<br />
So the cavebot doesnt go to the label called '"DROP" not sure what im doing wrong.<br />
<br />
Also I tried this:<br />
<br />
<div class="codeblock"><!--<div class="title" style="user-select: none;">Code:</div>--><div class="title" style="user-select: none;"><a href="#" onclick="selectCode(this); return false;">(COPY)</a></div><div class="body" dir="ltr"><code>if cap() &lt;= 30 and status == 'no drop' then<br />
&nbsp;&nbsp;gotolabel('DROP')<br />
end</code></div></div>]]></description>
			<content:encoded><![CDATA[Hello Im trying to force my cavebot to go to X waypoint and DROP loot, if I have less than X cap.<br />
<br />
1. Create an 2 Actions in Cavebot:<br />
<br />
#1 Waypoint.<br />
<div class="codeblock"><!--<div class="title" style="user-select: none;">Code:</div>--><div class="title" style="user-select: none;"><a href="#" onclick="selectCode(this); return false;">(COPY)</a></div><div class="body" dir="ltr"><code>status = 'no drop'</code></div></div><br />
#X waypoint since this waypoint is just before all I want to do and labeled "DROP"<br />
<div class="codeblock"><!--<div class="title" style="user-select: none;">Code:</div>--><div class="title" style="user-select: none;"><a href="#" onclick="selectCode(this); return false;">(COPY)</a></div><div class="body" dir="ltr"><code>status = 'drop'</code></div></div><br />
<br />
2. Create a LUA script on Cavebot:<br />
<div class="codeblock"><!--<div class="title" style="user-select: none;">Code:</div>--><div class="title" style="user-select: none;"><a href="#" onclick="selectCode(this); return false;">(COPY)</a></div><div class="body" dir="ltr"><code>captodrop = 40<br />
<br />
if cap() &lt;= captodrop and status == 'no drop' then<br />
&nbsp;&nbsp;gotolabel('DROP')<br />
end</code></div></div><br />
<br />
So the cavebot doesnt go to the label called '"DROP" not sure what im doing wrong.<br />
<br />
Also I tried this:<br />
<br />
<div class="codeblock"><!--<div class="title" style="user-select: none;">Code:</div>--><div class="title" style="user-select: none;"><a href="#" onclick="selectCode(this); return false;">(COPY)</a></div><div class="body" dir="ltr"><code>if cap() &lt;= 30 and status == 'no drop' then<br />
&nbsp;&nbsp;gotolabel('DROP')<br />
end</code></div></div>]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Pause cavebot and targeting and move to safe spot when player on screen]]></title>
			<link>https://forums.otbots.com/Thread-Pause-cavebot-and-targeting-and-move-to-safe-spot-when-player-on-screen--2902</link>
			<pubDate>Sun, 12 May 2024 15:13:33 -0500</pubDate>
			<dc:creator><![CDATA[<a href="https://forums.otbots.com/member.php?action=profile&uid=5745">gregge</a>]]></dc:creator>
			<guid isPermaLink="false">https://forums.otbots.com/Thread-Pause-cavebot-and-targeting-and-move-to-safe-spot-when-player-on-screen--2902</guid>
			<description><![CDATA[Hi!<br />
<br />
I would need the following script if someone knows how:<br />
<br />
If player x on screen --&gt; pause cavebot and targeting --&gt; move to sqm and use magic rope. Wait x seconds --&gt; activate cavebot and targeting --&gt; move to sqm with hole --&gt; start botting again. <br />
<br />
Thanks in advance!]]></description>
			<content:encoded><![CDATA[Hi!<br />
<br />
I would need the following script if someone knows how:<br />
<br />
If player x on screen --&gt; pause cavebot and targeting --&gt; move to sqm and use magic rope. Wait x seconds --&gt; activate cavebot and targeting --&gt; move to sqm with hole --&gt; start botting again. <br />
<br />
Thanks in advance!]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[HUD Request]]></title>
			<link>https://forums.otbots.com/Thread-HUD-Request--2865</link>
			<pubDate>Tue, 12 Mar 2024 08:43:39 -0500</pubDate>
			<dc:creator><![CDATA[<a href="https://forums.otbots.com/member.php?action=profile&uid=3442">Breeze1</a>]]></dc:creator>
			<guid isPermaLink="false">https://forums.otbots.com/Thread-HUD-Request--2865</guid>
			<description><![CDATA[Hi,<br />
<br />
is it possible to have a HUD to show how much exp is left to level? so when I level I can see I have like 1000 exp left to next level?<br />
<br />
Also is it possible to do this in terms of monsters? so I have 1000 Exp left to level AKA 25 Rotworms<br />
<br />
Thanks]]></description>
			<content:encoded><![CDATA[Hi,<br />
<br />
is it possible to have a HUD to show how much exp is left to level? so when I level I can see I have like 1000 exp left to next level?<br />
<br />
Also is it possible to do this in terms of monsters? so I have 1000 Exp left to level AKA 25 Rotworms<br />
<br />
Thanks]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Pause bot if Summon on screen]]></title>
			<link>https://forums.otbots.com/Thread-Pause-bot-if-Summon-on-screen--2861</link>
			<pubDate>Wed, 06 Mar 2024 10:08:04 -0600</pubDate>
			<dc:creator><![CDATA[<a href="https://forums.otbots.com/member.php?action=profile&uid=4277">megablazzen</a>]]></dc:creator>
			<guid isPermaLink="false">https://forums.otbots.com/Thread-Pause-bot-if-Summon-on-screen--2861</guid>
			<description><![CDATA[Hi im looking for a LUA script to classic tibia bot where it pauses the bot and alerts sound when or if GM would summon monster in screen while he is invisible. I tried one but didnt work on classic tibia bot.]]></description>
			<content:encoded><![CDATA[Hi im looking for a LUA script to classic tibia bot where it pauses the bot and alerts sound when or if GM would summon monster in screen while he is invisible. I tried one but didnt work on classic tibia bot.]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Attack Direction]]></title>
			<link>https://forums.otbots.com/Thread-Attack-Direction--2858</link>
			<pubDate>Fri, 01 Mar 2024 04:50:54 -0600</pubDate>
			<dc:creator><![CDATA[<a href="https://forums.otbots.com/member.php?action=profile&uid=3442">Breeze1</a>]]></dc:creator>
			<guid isPermaLink="false">https://forums.otbots.com/Thread-Attack-Direction--2858</guid>
			<description><![CDATA[Hi,<br />
<br />
Just need a script that attacks to the south of the player only (training basically with monsters)<br />
<br />
Thanks]]></description>
			<content:encoded><![CDATA[Hi,<br />
<br />
Just need a script that attacks to the south of the player only (training basically with monsters)<br />
<br />
Thanks]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[DISABLE "TOOLS" IF COUNT BOLT >=]]></title>
			<link>https://forums.otbots.com/Thread-DISABLE-TOOLS-IF-COUNT-BOLT--2821</link>
			<pubDate>Mon, 08 Jan 2024 18:16:21 -0600</pubDate>
			<dc:creator><![CDATA[<a href="https://forums.otbots.com/member.php?action=profile&uid=13524">Gustavo Seixas</a>]]></dc:creator>
			<guid isPermaLink="false">https://forums.otbots.com/Thread-DISABLE-TOOLS-IF-COUNT-BOLT--2821</guid>
			<description><![CDATA[HOW CAN I CREATE A SCRIT TO COUNT MY BOLT, AND IF MY BOLT &lt; 100 THE BOT GONNA START "MANA TRAINER" WITH SPELL CONJURE BOLT UNTIL "400 BOLTS" IN BP?]]></description>
			<content:encoded><![CDATA[HOW CAN I CREATE A SCRIT TO COUNT MY BOLT, AND IF MY BOLT &lt; 100 THE BOT GONNA START "MANA TRAINER" WITH SPELL CONJURE BOLT UNTIL "400 BOLTS" IN BP?]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Postman]]></title>
			<link>https://forums.otbots.com/Thread-Postman--2808</link>
			<pubDate>Tue, 19 Dec 2023 06:58:05 -0600</pubDate>
			<dc:creator><![CDATA[<a href="https://forums.otbots.com/member.php?action=profile&uid=1823">mattcrespo</a>]]></dc:creator>
			<guid isPermaLink="false">https://forums.otbots.com/Thread-Postman--2808</guid>
			<description><![CDATA[Is there any script that does Postman?]]></description>
			<content:encoded><![CDATA[Is there any script that does Postman?]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Stealth ring]]></title>
			<link>https://forums.otbots.com/Thread-Stealth-ring--2754</link>
			<pubDate>Wed, 25 Oct 2023 09:28:07 -0500</pubDate>
			<dc:creator><![CDATA[<a href="https://forums.otbots.com/member.php?action=profile&uid=16204">Mia</a>]]></dc:creator>
			<guid isPermaLink="false">https://forums.otbots.com/Thread-Stealth-ring--2754</guid>
			<description><![CDATA[Equip Stealth ring when more than 2+~ demon skeletons on me.?]]></description>
			<content:encoded><![CDATA[Equip Stealth ring when more than 2+~ demon skeletons on me.?]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[rune and mfs refiller]]></title>
			<link>https://forums.otbots.com/Thread-rune-and-mfs-refiller--2725</link>
			<pubDate>Sun, 24 Sep 2023 02:58:55 -0500</pubDate>
			<dc:creator><![CDATA[<a href="https://forums.otbots.com/member.php?action=profile&uid=16518">morateb007</a>]]></dc:creator>
			<guid isPermaLink="false">https://forums.otbots.com/Thread-rune-and-mfs-refiller--2725</guid>
			<description><![CDATA[i need a script to move runes and mfs from one bp to another]]></description>
			<content:encoded><![CDATA[i need a script to move runes and mfs from one bp to another]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Can we adapt this script Lua?]]></title>
			<link>https://forums.otbots.com/Thread-Can-we-adapt-this-script-Lua--2654</link>
			<pubDate>Mon, 03 Jul 2023 19:09:51 -0500</pubDate>
			<dc:creator><![CDATA[<a href="https://forums.otbots.com/member.php?action=profile&uid=16381">jucaliciouz</a>]]></dc:creator>
			<guid isPermaLink="false">https://forums.otbots.com/Thread-Can-we-adapt-this-script-Lua--2654</guid>
			<description><![CDATA[Hi Ark, when i was playin nostalrius i was using RifBot and theres a script that imitates human moviment while cave botting, can we adapt the Lua from Rif to ClassicB?<br />
<br />
<br />
was something like this, it rotates your character, also push items and move bodies while cave botting.<br />
<br />
<br />
<div class="codeblock"><!--<div class="title" style="user-select: none;">Code:</div>--><div class="title" style="user-select: none;"><a href="#" onclick="selectCode(this); return false;">(COPY)</a></div><div class="body" dir="ltr"><code>Description:        Players can easy mark you as bot when you walking on follow and don't do anything else. Lets try to be more human.<br />
<br />
]]<br />
--&gt; Modules delay execute every random ms<br />
local MOD_STEP = {900, 1300} -- execute step near target every this time<br />
local MOD_TURN = {600, 1100} -- execute turn to target every this time<br />
local MOD_DANCE = {6000, 8000} -- execute dance every this time<br />
local MOD_PUSH = {3000, 5000, true} -- execute push items every this time in miliseconds, enabled true/false<br />
local MOD_DRAG = {7000, 10000, true} -- execute drag item while moving without target, enabled true/false<br />
local STEP_DIAGONAL = true -- allow step diagonal near target.<br />
local STEP_DELAY = 500 -- step every x ms to avoid overdash.<br />
local ALLOW_WALK_IDS = {123} -- enter here id such as parcels, boxes etc we check for it.<br />
-- DON'T EDIT BELOW THIS LINE<br />
local targetTime, markTargetTime, lastTargetID, stepTime, modStepTime, modStepRand, modTurnTime, modTurnRand, modDanceTime, modDanceRand, modDancePosTime, modDancePos, modPushTime, modPushRand, modDragTime, modDragRand, modDragTries, modDragMaxTries = 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, {0, 0, 0}, 0, 0, 0, 0, 0, 13<br />
----------------------------------------------------------------------------------------------------------------------------------------------------------<br />
--&gt; Function: tileIsWalkable(x, y, z, player)<br />
--&gt; Description: Check is tile is walkable<br />
--&gt; Params:<br />
--&gt; @x coordinate in the map on the x-axis<br />
--&gt; @y coordinate in the map on the y-axis<br />
--&gt; @z coordinate in the map on the z-axis<br />
--&gt; @player bool (optional default true) read player as not walkable true false<br />
--&gt;<br />
--&gt; Return: boolean true or false<br />
----------------------------------------------------------------------------------------------------------------------------------------------------------<br />
function tileIsWalkable(x, y, z, player)<br />
local path = 0<br />
local items = Map.GetItems(x, y, z)<br />
for i, item in ipairs(items) do<br />
if (player == nil or player == true) and item.id == 99 then return false end<br />
if Item.hasAttribute(item.id, ITEM_FLAG_NOT_WALKABLE) then return false end<br />
if Item.hasAttribute(item.id, ITEM_FLAG_NOT_PATHABLE) then<br />
if table.find(ALLOW_WALK_IDS, item.id) then<br />
path = path + 1<br />
if path &gt;= 2 then return false end<br />
else<br />
return false<br />
end<br />
end<br />
end<br />
return true<br />
end<br />
----------------------------------------------------------------------------------------------------------------------------------------------------------<br />
--&gt; Function: getAttackedCreature()<br />
--&gt; Description: Get creature you already attack<br />
--&gt; Params: None<br />
--&gt;<br />
--&gt; Return: -1 if no creature else table with creature<br />
----------------------------------------------------------------------------------------------------------------------------------------------------------<br />
function getAttackedCreature()<br />
local t = Self.TargetID()<br />
if t &lt;= 0 then return -1 end<br />
local c = Creature.getCreatures(t)<br />
if table.count(c) &lt; 2 then return -1 end<br />
targetTime = os.clock()<br />
if lastTargetID ~= c.id then<br />
markTargetTime = os.clock()<br />
lastTargetID = c.id<br />
end<br />
return c<br />
end<br />
----------------------------------------------------------------------------------------------------------------------------------------------------------<br />
--&gt; Function: delayedStep(dir)<br />
--&gt; Description: Get creature you already attack<br />
--&gt; Params:<br />
--&gt;<br />
--&gt; @dir number direction to step<br />
--&gt; Return: boolean true or false<br />
----------------------------------------------------------------------------------------------------------------------------------------------------------<br />
function delayedStep(dir)<br />
if os.clock() - stepTime &gt; (STEP_DELAY / 1000) then<br />
Self.Step(dir)<br />
stepTime = os.clock()<br />
return true<br />
end<br />
return false<br />
end<br />
----------------------------------------------------------------------------------------------------------------------------------------------------------<br />
--&gt; Function: getDirToStepNearTarget(c)<br />
--&gt; Description: Get possible steps dir near target.<br />
--&gt; Params:<br />
--&gt;<br />
--&gt; @c table with creature<br />
--&gt; Return: table dirs<br />
----------------------------------------------------------------------------------------------------------------------------------------------------------<br />
function getDirToStepNearTarget(c)<br />
local s = Self.Position()<br />
local dir = {-1 ,-1}<br />
if c.x == (s.x + 1) and c.y == (s.y + 1) then<br />
dir = {1, 2}<br />
elseif c.x == (s.x) and c.y == (s.y + 1) then<br />
dir = {3, 1, 6, 5}<br />
elseif c.x == (s.x - 1) and c.y == (s.y + 1) then<br />
dir = {3, 2}<br />
elseif c.x == (s.x - 1) and c.y == (s.y) then<br />
dir = {0, 2, 7, 6}<br />
elseif c.x == (s.x - 1) and c.y == (s.y - 1) then<br />
dir = {0, 3}<br />
elseif c.x == (s.x) and c.y == (s.y - 1) then<br />
dir = {3, 1, 7, 4}<br />
elseif c.x == (s.x + 1) and c.y == (s.y - 1) then<br />
dir = {0, 1}<br />
elseif c.x == (s.x + 1) and c.y == (s.y) then<br />
dir = {0, 2, 4, 5}<br />
end<br />
return dir<br />
end<br />
----------------------------------------------------------------------------------------------------------------------------------------------------------<br />
--&gt; Function: getTurnDirToTarget(c)<br />
--&gt; Description: Get possible steps dir near target.<br />
--&gt; Params:<br />
--&gt;<br />
--&gt; @c table with creature<br />
--&gt; Return: number dir<br />
----------------------------------------------------------------------------------------------------------------------------------------------------------<br />
function getTurnDirToTarget(c)<br />
local s = Self.Position()<br />
local dir = -1<br />
if c.x == (s.x + 1) and c.y == (s.y + 1) then<br />
dir = 1<br />
elseif c.x == (s.x) and c.y == (s.y + 1) then<br />
dir = 2<br />
elseif c.x == (s.x - 1) and c.y == (s.y + 1) then<br />
dir = 3<br />
elseif c.x == (s.x - 1) and c.y == (s.y) then<br />
dir = 3<br />
elseif c.x == (s.x - 1) and c.y == (s.y - 1) then<br />
dir = 0<br />
elseif c.x == (s.x) and c.y == (s.y - 1) then<br />
dir = 0<br />
elseif c.x == (s.x + 1) and c.y == (s.y - 1) then<br />
dir = 1<br />
elseif c.x == (s.x + 1) and c.y == (s.y) then<br />
dir = 1<br />
end<br />
return dir<br />
end<br />
----------------------------------------------------------------------------------------------------------------------------------------------------------<br />
--&gt; Function: getPushPositionFromDir<br />
--&gt; Description: Get push item direction from current self position<br />
--&gt; Params:<br />
--&gt; @len - number distance from your character (default 1)<br />
--&gt;<br />
--&gt; Return: table pos<br />
----------------------------------------------------------------------------------------------------------------------------------------------------------<br />
function getPushPositionFromDir(len)<br />
local dir = Self.Direction()<br />
local s = Self.Position()<br />
local pos = {-1, -1, -1}<br />
if len == nil then len = 1 end<br />
if dir == 0 then<br />
pos = {s.x, s.y - len, s.z}<br />
elseif dir == 1 then<br />
pos = {s.x + len, s.y, s.z}<br />
elseif dir == 2 then<br />
pos = {s.x, s.y + len, s.z}<br />
elseif dir == 3 then<br />
pos = {s.x - len, s.y, s.z}<br />
end<br />
return pos<br />
end<br />
----------------------------------------------------------------------------------------------------------------------------------------------------------<br />
--&gt; Function: updateSelfPosition()<br />
--&gt; Description: Update character position and measure time we dont moving.<br />
--&gt; Params: None<br />
--&gt;<br />
--&gt; Return: void nothing.<br />
----------------------------------------------------------------------------------------------------------------------------------------------------------<br />
function updateSelfPosition()<br />
local pos = Self.Position()<br />
if modDancePos[1] ~= pos.x or modDancePos[2] ~= pos.y or modDancePos[3] ~= pos.z then<br />
modDancePos[1] = pos.x<br />
modDancePos[2] = pos.y<br />
modDancePos[3] = pos.z<br />
modDancePosTime = os.clock()<br />
end<br />
end<br />
----------------------------------------------------------------------------------------------------------------------------------------------------------<br />
--&gt; Function: modStep(c)<br />
--&gt; Description: Step near target<br />
--&gt; Params:<br />
--&gt;<br />
--&gt; @c table with creature<br />
--&gt; Return: none<br />
----------------------------------------------------------------------------------------------------------------------------------------------------------<br />
function modStep(c)<br />
if Creature.DistanceFromSelf(c) == 1 and not Looter.isLooting() and not Self.isDancing() and not Self.isItemFunPlaying() then<br />
if os.clock() - modStepTime &gt; (modStepRand / 1000) then<br />
local turnDir = getTurnDirToTarget(c)<br />
if turnDir ~= -1 and Self.Direction() == turnDir then<br />
local dirs = getDirToStepNearTarget(c)<br />
if dirs[1] ~= -1 then<br />
local pos1 = Self.getPositionFromDirection(dirs[1])<br />
local pos2 = Self.getPositionFromDirection(dirs[2])<br />
local dir = {}<br />
if tileIsWalkable(pos1.x, pos1.y, pos1.z) then<br />
table.insert(dir, dirs[1])<br />
end<br />
if tileIsWalkable(pos2.x, pos2.y, pos2.z) then<br />
table.insert(dir, dirs[2])<br />
end<br />
if STEP_DIAGONAL then<br />
if table.count(dirs) == 4 then<br />
local pos3 = Self.getPositionFromDirection(dirs[3])<br />
local pos4 = Self.getPositionFromDirection(dirs[4])<br />
if tileIsWalkable(pos3.x, pos3.y, pos3.z) then<br />
table.insert(dir, dirs[3])<br />
end<br />
if tileIsWalkable(pos4.x, pos4.y, pos4.z) then<br />
table.insert(dir, dirs[4])<br />
end<br />
end<br />
end<br />
if table.count(dir) &gt; 0 then<br />
dir = dir[math.random(1, table.count(dir))]<br />
if delayedStep(dir) then<br />
modStepTime = os.clock()<br />
modStepRand = math.random(MOD_STEP[1], MOD_STEP[2])<br />
if dir &gt; 3 then<br />
modStepRand = modStepRand + 1500<br />
end<br />
end<br />
end<br />
end<br />
end<br />
end<br />
end<br />
end<br />
----------------------------------------------------------------------------------------------------------------------------------------------------------<br />
--&gt; Function: modTurn(c)<br />
--&gt; Description: Turn into target direction<br />
--&gt; Params:<br />
--&gt;<br />
--&gt; @c table with creature<br />
--&gt; Return: none<br />
----------------------------------------------------------------------------------------------------------------------------------------------------------<br />
function modTurn(c)<br />
if Creature.DistanceFromSelf(c) == 1 and not Self.isDancing() and not Self.isItemFunPlaying() then<br />
if os.clock() - modTurnTime &gt; (modTurnRand / 1000) then<br />
local dir = getTurnDirToTarget(c)<br />
if dir ~= -1 then<br />
Self.Turn(dir)<br />
modTurnTime = os.clock()<br />
modTurnRand = math.random(MOD_TURN[1], MOD_TURN[2])<br />
end<br />
end<br />
end<br />
end<br />
----------------------------------------------------------------------------------------------------------------------------------------------------------<br />
--&gt; Function: modDance()<br />
--&gt; Description: Dance like a pro.<br />
--&gt; Params: None<br />
--&gt;<br />
--&gt; Return: none<br />
----------------------------------------------------------------------------------------------------------------------------------------------------------<br />
function modDance(c)<br />
if Creature.DistanceFromSelf(c) == 1 and os.clock() - modDanceTime &gt; (modDanceRand / 1000) and os.clock() - modDancePosTime &gt; 1.5 then<br />
if not Self.isWalking() then<br />
Self.Dance()<br />
modDanceTime = os.clock()<br />
modDanceRand = math.random(MOD_DANCE[1], MOD_DANCE[2])<br />
end<br />
end<br />
end<br />
----------------------------------------------------------------------------------------------------------------------------------------------------------<br />
--&gt; Function: modPush(c)<br />
--&gt; Description: Push items like a crazy.<br />
--&gt; Params: @c table with creature<br />
--&gt;<br />
--&gt; Return: none<br />
----------------------------------------------------------------------------------------------------------------------------------------------------------<br />
function modPush(c)<br />
if MOD_PUSH[3] then<br />
if Creature.DistanceFromSelf(c) == 1 and os.clock() - modPushTime &gt; (modPushRand / 1000) and not Looter.isLooting() and not Self.isDancing() and os.clock() - modDancePosTime &gt; 1.5 and os.clock() - markTargetTime &gt; 1 then<br />
if not Self.isWalking() then<br />
Self.ItemFunPlay()<br />
modPushTime = os.clock()<br />
modPushRand = math.random(MOD_DANCE[1], MOD_DANCE[2])<br />
end<br />
end<br />
end<br />
end<br />
----------------------------------------------------------------------------------------------------------------------------------------------------------<br />
--&gt; Function: modDrag()<br />
--&gt; Description: Drag items when walking.<br />
--&gt; Params: None<br />
--&gt;<br />
--&gt; Return: none<br />
----------------------------------------------------------------------------------------------------------------------------------------------------------<br />
function modDrag()<br />
if MOD_DRAG[3] then<br />
if os.clock() - modDragTime &gt; (modDragRand / 1000) and Self.isWalking() and not Looter.isLooting() and not Self.isDancing() and os.clock() - targetTime &gt; 1 then<br />
local dir = Self.Direction()<br />
local pos = Self.Position()<br />
local map = Map.GetTopMoveItem(pos.x, pos.y, pos.z)<br />
local addX, addY = 0, 0<br />
if dir == 0 or dir == 2 then<br />
if Item.hasAttribute(map.id, ITEM_FLAG_NOT_MOVEABLE) or map.id == 99 then map = Map.GetTopMoveItem(pos.x + 1, pos.y, pos.z) addX = 1 end<br />
if Item.hasAttribute(map.id, ITEM_FLAG_NOT_MOVEABLE) or map.id == 99 then map = Map.GetTopMoveItem(pos.x -1, pos.y, pos.z) addX = -1 end<br />
else<br />
if Item.hasAttribute(map.id, ITEM_FLAG_NOT_MOVEABLE) or map.id == 99 then map = Map.GetTopMoveItem(pos.x, pos.y + 1, pos.z) addY = 1 end<br />
if Item.hasAttribute(map.id, ITEM_FLAG_NOT_MOVEABLE) or map.id == 99 then map = Map.GetTopMoveItem(pos.x, pos.y - 1, pos.z) addY = -1 end<br />
end<br />
if not Item.hasAttribute(map.id, ITEM_FLAG_NOT_MOVEABLE) and map.id ~= 99 then<br />
local dest = getPushPositionFromDir(math.random(1, 2))<br />
if dest[1] ~= -1 then<br />
if tileIsWalkable(dest[1] + addX, dest[2] + addY, dest[3], false) then<br />
Map.MoveItem(pos.x + addX, pos.y + addY, pos.z, dest[1] + addX, dest[2] + addY, dest[3], map.id, map.count, math.random(150, 250))<br />
end<br />
modDragTries = modDragTries + 1<br />
end<br />
else<br />
end<br />
if modDragTries &gt; modDragMaxTries then<br />
modDragTime = os.clock()<br />
modDragRand = math.random(MOD_DRAG[1], MOD_DRAG[2])<br />
modDragMaxTries = math.random(13, 17)<br />
modDragTries = 0<br />
end<br />
end<br />
end<br />
end<br />
-- module run function in loop 200ms<br />
Module.New("Imitate Player While Caveboting", function()<br />
if Self.isConnected() then<br />
updateSelfPosition()<br />
local t = getAttackedCreature()<br />
if t ~= -1 then<br />
modStep(t)<br />
modTurn(t)<br />
modDance(t)<br />
modPush(t)<br />
else<br />
modDrag()<br />
end<br />
end<br />
end)</code></div></div>]]></description>
			<content:encoded><![CDATA[Hi Ark, when i was playin nostalrius i was using RifBot and theres a script that imitates human moviment while cave botting, can we adapt the Lua from Rif to ClassicB?<br />
<br />
<br />
was something like this, it rotates your character, also push items and move bodies while cave botting.<br />
<br />
<br />
<div class="codeblock"><!--<div class="title" style="user-select: none;">Code:</div>--><div class="title" style="user-select: none;"><a href="#" onclick="selectCode(this); return false;">(COPY)</a></div><div class="body" dir="ltr"><code>Description:        Players can easy mark you as bot when you walking on follow and don't do anything else. Lets try to be more human.<br />
<br />
]]<br />
--&gt; Modules delay execute every random ms<br />
local MOD_STEP = {900, 1300} -- execute step near target every this time<br />
local MOD_TURN = {600, 1100} -- execute turn to target every this time<br />
local MOD_DANCE = {6000, 8000} -- execute dance every this time<br />
local MOD_PUSH = {3000, 5000, true} -- execute push items every this time in miliseconds, enabled true/false<br />
local MOD_DRAG = {7000, 10000, true} -- execute drag item while moving without target, enabled true/false<br />
local STEP_DIAGONAL = true -- allow step diagonal near target.<br />
local STEP_DELAY = 500 -- step every x ms to avoid overdash.<br />
local ALLOW_WALK_IDS = {123} -- enter here id such as parcels, boxes etc we check for it.<br />
-- DON'T EDIT BELOW THIS LINE<br />
local targetTime, markTargetTime, lastTargetID, stepTime, modStepTime, modStepRand, modTurnTime, modTurnRand, modDanceTime, modDanceRand, modDancePosTime, modDancePos, modPushTime, modPushRand, modDragTime, modDragRand, modDragTries, modDragMaxTries = 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, {0, 0, 0}, 0, 0, 0, 0, 0, 13<br />
----------------------------------------------------------------------------------------------------------------------------------------------------------<br />
--&gt; Function: tileIsWalkable(x, y, z, player)<br />
--&gt; Description: Check is tile is walkable<br />
--&gt; Params:<br />
--&gt; @x coordinate in the map on the x-axis<br />
--&gt; @y coordinate in the map on the y-axis<br />
--&gt; @z coordinate in the map on the z-axis<br />
--&gt; @player bool (optional default true) read player as not walkable true false<br />
--&gt;<br />
--&gt; Return: boolean true or false<br />
----------------------------------------------------------------------------------------------------------------------------------------------------------<br />
function tileIsWalkable(x, y, z, player)<br />
local path = 0<br />
local items = Map.GetItems(x, y, z)<br />
for i, item in ipairs(items) do<br />
if (player == nil or player == true) and item.id == 99 then return false end<br />
if Item.hasAttribute(item.id, ITEM_FLAG_NOT_WALKABLE) then return false end<br />
if Item.hasAttribute(item.id, ITEM_FLAG_NOT_PATHABLE) then<br />
if table.find(ALLOW_WALK_IDS, item.id) then<br />
path = path + 1<br />
if path &gt;= 2 then return false end<br />
else<br />
return false<br />
end<br />
end<br />
end<br />
return true<br />
end<br />
----------------------------------------------------------------------------------------------------------------------------------------------------------<br />
--&gt; Function: getAttackedCreature()<br />
--&gt; Description: Get creature you already attack<br />
--&gt; Params: None<br />
--&gt;<br />
--&gt; Return: -1 if no creature else table with creature<br />
----------------------------------------------------------------------------------------------------------------------------------------------------------<br />
function getAttackedCreature()<br />
local t = Self.TargetID()<br />
if t &lt;= 0 then return -1 end<br />
local c = Creature.getCreatures(t)<br />
if table.count(c) &lt; 2 then return -1 end<br />
targetTime = os.clock()<br />
if lastTargetID ~= c.id then<br />
markTargetTime = os.clock()<br />
lastTargetID = c.id<br />
end<br />
return c<br />
end<br />
----------------------------------------------------------------------------------------------------------------------------------------------------------<br />
--&gt; Function: delayedStep(dir)<br />
--&gt; Description: Get creature you already attack<br />
--&gt; Params:<br />
--&gt;<br />
--&gt; @dir number direction to step<br />
--&gt; Return: boolean true or false<br />
----------------------------------------------------------------------------------------------------------------------------------------------------------<br />
function delayedStep(dir)<br />
if os.clock() - stepTime &gt; (STEP_DELAY / 1000) then<br />
Self.Step(dir)<br />
stepTime = os.clock()<br />
return true<br />
end<br />
return false<br />
end<br />
----------------------------------------------------------------------------------------------------------------------------------------------------------<br />
--&gt; Function: getDirToStepNearTarget(c)<br />
--&gt; Description: Get possible steps dir near target.<br />
--&gt; Params:<br />
--&gt;<br />
--&gt; @c table with creature<br />
--&gt; Return: table dirs<br />
----------------------------------------------------------------------------------------------------------------------------------------------------------<br />
function getDirToStepNearTarget(c)<br />
local s = Self.Position()<br />
local dir = {-1 ,-1}<br />
if c.x == (s.x + 1) and c.y == (s.y + 1) then<br />
dir = {1, 2}<br />
elseif c.x == (s.x) and c.y == (s.y + 1) then<br />
dir = {3, 1, 6, 5}<br />
elseif c.x == (s.x - 1) and c.y == (s.y + 1) then<br />
dir = {3, 2}<br />
elseif c.x == (s.x - 1) and c.y == (s.y) then<br />
dir = {0, 2, 7, 6}<br />
elseif c.x == (s.x - 1) and c.y == (s.y - 1) then<br />
dir = {0, 3}<br />
elseif c.x == (s.x) and c.y == (s.y - 1) then<br />
dir = {3, 1, 7, 4}<br />
elseif c.x == (s.x + 1) and c.y == (s.y - 1) then<br />
dir = {0, 1}<br />
elseif c.x == (s.x + 1) and c.y == (s.y) then<br />
dir = {0, 2, 4, 5}<br />
end<br />
return dir<br />
end<br />
----------------------------------------------------------------------------------------------------------------------------------------------------------<br />
--&gt; Function: getTurnDirToTarget(c)<br />
--&gt; Description: Get possible steps dir near target.<br />
--&gt; Params:<br />
--&gt;<br />
--&gt; @c table with creature<br />
--&gt; Return: number dir<br />
----------------------------------------------------------------------------------------------------------------------------------------------------------<br />
function getTurnDirToTarget(c)<br />
local s = Self.Position()<br />
local dir = -1<br />
if c.x == (s.x + 1) and c.y == (s.y + 1) then<br />
dir = 1<br />
elseif c.x == (s.x) and c.y == (s.y + 1) then<br />
dir = 2<br />
elseif c.x == (s.x - 1) and c.y == (s.y + 1) then<br />
dir = 3<br />
elseif c.x == (s.x - 1) and c.y == (s.y) then<br />
dir = 3<br />
elseif c.x == (s.x - 1) and c.y == (s.y - 1) then<br />
dir = 0<br />
elseif c.x == (s.x) and c.y == (s.y - 1) then<br />
dir = 0<br />
elseif c.x == (s.x + 1) and c.y == (s.y - 1) then<br />
dir = 1<br />
elseif c.x == (s.x + 1) and c.y == (s.y) then<br />
dir = 1<br />
end<br />
return dir<br />
end<br />
----------------------------------------------------------------------------------------------------------------------------------------------------------<br />
--&gt; Function: getPushPositionFromDir<br />
--&gt; Description: Get push item direction from current self position<br />
--&gt; Params:<br />
--&gt; @len - number distance from your character (default 1)<br />
--&gt;<br />
--&gt; Return: table pos<br />
----------------------------------------------------------------------------------------------------------------------------------------------------------<br />
function getPushPositionFromDir(len)<br />
local dir = Self.Direction()<br />
local s = Self.Position()<br />
local pos = {-1, -1, -1}<br />
if len == nil then len = 1 end<br />
if dir == 0 then<br />
pos = {s.x, s.y - len, s.z}<br />
elseif dir == 1 then<br />
pos = {s.x + len, s.y, s.z}<br />
elseif dir == 2 then<br />
pos = {s.x, s.y + len, s.z}<br />
elseif dir == 3 then<br />
pos = {s.x - len, s.y, s.z}<br />
end<br />
return pos<br />
end<br />
----------------------------------------------------------------------------------------------------------------------------------------------------------<br />
--&gt; Function: updateSelfPosition()<br />
--&gt; Description: Update character position and measure time we dont moving.<br />
--&gt; Params: None<br />
--&gt;<br />
--&gt; Return: void nothing.<br />
----------------------------------------------------------------------------------------------------------------------------------------------------------<br />
function updateSelfPosition()<br />
local pos = Self.Position()<br />
if modDancePos[1] ~= pos.x or modDancePos[2] ~= pos.y or modDancePos[3] ~= pos.z then<br />
modDancePos[1] = pos.x<br />
modDancePos[2] = pos.y<br />
modDancePos[3] = pos.z<br />
modDancePosTime = os.clock()<br />
end<br />
end<br />
----------------------------------------------------------------------------------------------------------------------------------------------------------<br />
--&gt; Function: modStep(c)<br />
--&gt; Description: Step near target<br />
--&gt; Params:<br />
--&gt;<br />
--&gt; @c table with creature<br />
--&gt; Return: none<br />
----------------------------------------------------------------------------------------------------------------------------------------------------------<br />
function modStep(c)<br />
if Creature.DistanceFromSelf(c) == 1 and not Looter.isLooting() and not Self.isDancing() and not Self.isItemFunPlaying() then<br />
if os.clock() - modStepTime &gt; (modStepRand / 1000) then<br />
local turnDir = getTurnDirToTarget(c)<br />
if turnDir ~= -1 and Self.Direction() == turnDir then<br />
local dirs = getDirToStepNearTarget(c)<br />
if dirs[1] ~= -1 then<br />
local pos1 = Self.getPositionFromDirection(dirs[1])<br />
local pos2 = Self.getPositionFromDirection(dirs[2])<br />
local dir = {}<br />
if tileIsWalkable(pos1.x, pos1.y, pos1.z) then<br />
table.insert(dir, dirs[1])<br />
end<br />
if tileIsWalkable(pos2.x, pos2.y, pos2.z) then<br />
table.insert(dir, dirs[2])<br />
end<br />
if STEP_DIAGONAL then<br />
if table.count(dirs) == 4 then<br />
local pos3 = Self.getPositionFromDirection(dirs[3])<br />
local pos4 = Self.getPositionFromDirection(dirs[4])<br />
if tileIsWalkable(pos3.x, pos3.y, pos3.z) then<br />
table.insert(dir, dirs[3])<br />
end<br />
if tileIsWalkable(pos4.x, pos4.y, pos4.z) then<br />
table.insert(dir, dirs[4])<br />
end<br />
end<br />
end<br />
if table.count(dir) &gt; 0 then<br />
dir = dir[math.random(1, table.count(dir))]<br />
if delayedStep(dir) then<br />
modStepTime = os.clock()<br />
modStepRand = math.random(MOD_STEP[1], MOD_STEP[2])<br />
if dir &gt; 3 then<br />
modStepRand = modStepRand + 1500<br />
end<br />
end<br />
end<br />
end<br />
end<br />
end<br />
end<br />
end<br />
----------------------------------------------------------------------------------------------------------------------------------------------------------<br />
--&gt; Function: modTurn(c)<br />
--&gt; Description: Turn into target direction<br />
--&gt; Params:<br />
--&gt;<br />
--&gt; @c table with creature<br />
--&gt; Return: none<br />
----------------------------------------------------------------------------------------------------------------------------------------------------------<br />
function modTurn(c)<br />
if Creature.DistanceFromSelf(c) == 1 and not Self.isDancing() and not Self.isItemFunPlaying() then<br />
if os.clock() - modTurnTime &gt; (modTurnRand / 1000) then<br />
local dir = getTurnDirToTarget(c)<br />
if dir ~= -1 then<br />
Self.Turn(dir)<br />
modTurnTime = os.clock()<br />
modTurnRand = math.random(MOD_TURN[1], MOD_TURN[2])<br />
end<br />
end<br />
end<br />
end<br />
----------------------------------------------------------------------------------------------------------------------------------------------------------<br />
--&gt; Function: modDance()<br />
--&gt; Description: Dance like a pro.<br />
--&gt; Params: None<br />
--&gt;<br />
--&gt; Return: none<br />
----------------------------------------------------------------------------------------------------------------------------------------------------------<br />
function modDance(c)<br />
if Creature.DistanceFromSelf(c) == 1 and os.clock() - modDanceTime &gt; (modDanceRand / 1000) and os.clock() - modDancePosTime &gt; 1.5 then<br />
if not Self.isWalking() then<br />
Self.Dance()<br />
modDanceTime = os.clock()<br />
modDanceRand = math.random(MOD_DANCE[1], MOD_DANCE[2])<br />
end<br />
end<br />
end<br />
----------------------------------------------------------------------------------------------------------------------------------------------------------<br />
--&gt; Function: modPush(c)<br />
--&gt; Description: Push items like a crazy.<br />
--&gt; Params: @c table with creature<br />
--&gt;<br />
--&gt; Return: none<br />
----------------------------------------------------------------------------------------------------------------------------------------------------------<br />
function modPush(c)<br />
if MOD_PUSH[3] then<br />
if Creature.DistanceFromSelf(c) == 1 and os.clock() - modPushTime &gt; (modPushRand / 1000) and not Looter.isLooting() and not Self.isDancing() and os.clock() - modDancePosTime &gt; 1.5 and os.clock() - markTargetTime &gt; 1 then<br />
if not Self.isWalking() then<br />
Self.ItemFunPlay()<br />
modPushTime = os.clock()<br />
modPushRand = math.random(MOD_DANCE[1], MOD_DANCE[2])<br />
end<br />
end<br />
end<br />
end<br />
----------------------------------------------------------------------------------------------------------------------------------------------------------<br />
--&gt; Function: modDrag()<br />
--&gt; Description: Drag items when walking.<br />
--&gt; Params: None<br />
--&gt;<br />
--&gt; Return: none<br />
----------------------------------------------------------------------------------------------------------------------------------------------------------<br />
function modDrag()<br />
if MOD_DRAG[3] then<br />
if os.clock() - modDragTime &gt; (modDragRand / 1000) and Self.isWalking() and not Looter.isLooting() and not Self.isDancing() and os.clock() - targetTime &gt; 1 then<br />
local dir = Self.Direction()<br />
local pos = Self.Position()<br />
local map = Map.GetTopMoveItem(pos.x, pos.y, pos.z)<br />
local addX, addY = 0, 0<br />
if dir == 0 or dir == 2 then<br />
if Item.hasAttribute(map.id, ITEM_FLAG_NOT_MOVEABLE) or map.id == 99 then map = Map.GetTopMoveItem(pos.x + 1, pos.y, pos.z) addX = 1 end<br />
if Item.hasAttribute(map.id, ITEM_FLAG_NOT_MOVEABLE) or map.id == 99 then map = Map.GetTopMoveItem(pos.x -1, pos.y, pos.z) addX = -1 end<br />
else<br />
if Item.hasAttribute(map.id, ITEM_FLAG_NOT_MOVEABLE) or map.id == 99 then map = Map.GetTopMoveItem(pos.x, pos.y + 1, pos.z) addY = 1 end<br />
if Item.hasAttribute(map.id, ITEM_FLAG_NOT_MOVEABLE) or map.id == 99 then map = Map.GetTopMoveItem(pos.x, pos.y - 1, pos.z) addY = -1 end<br />
end<br />
if not Item.hasAttribute(map.id, ITEM_FLAG_NOT_MOVEABLE) and map.id ~= 99 then<br />
local dest = getPushPositionFromDir(math.random(1, 2))<br />
if dest[1] ~= -1 then<br />
if tileIsWalkable(dest[1] + addX, dest[2] + addY, dest[3], false) then<br />
Map.MoveItem(pos.x + addX, pos.y + addY, pos.z, dest[1] + addX, dest[2] + addY, dest[3], map.id, map.count, math.random(150, 250))<br />
end<br />
modDragTries = modDragTries + 1<br />
end<br />
else<br />
end<br />
if modDragTries &gt; modDragMaxTries then<br />
modDragTime = os.clock()<br />
modDragRand = math.random(MOD_DRAG[1], MOD_DRAG[2])<br />
modDragMaxTries = math.random(13, 17)<br />
modDragTries = 0<br />
end<br />
end<br />
end<br />
end<br />
-- module run function in loop 200ms<br />
Module.New("Imitate Player While Caveboting", function()<br />
if Self.isConnected() then<br />
updateSelfPosition()<br />
local t = getAttackedCreature()<br />
if t ~= -1 then<br />
modStep(t)<br />
modTurn(t)<br />
modDance(t)<br />
modPush(t)<br />
else<br />
modDrag()<br />
end<br />
end<br />
end)</code></div></div>]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Need script to use]]></title>
			<link>https://forums.otbots.com/Thread-Need-script-to-use--2653</link>
			<pubDate>Sun, 02 Jul 2023 10:11:30 -0500</pubDate>
			<dc:creator><![CDATA[<a href="https://forums.otbots.com/member.php?action=profile&uid=16166">lindonjunior</a>]]></dc:creator>
			<guid isPermaLink="false">https://forums.otbots.com/Thread-Need-script-to-use--2653</guid>
			<description><![CDATA[need script to use mana rune with specific id on myself.]]></description>
			<content:encoded><![CDATA[need script to use mana rune with specific id on myself.]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[there is any script to put torchs]]></title>
			<link>https://forums.otbots.com/Thread-there-is-any-script-to-put-torchs--2649</link>
			<pubDate>Mon, 26 Jun 2023 21:42:38 -0500</pubDate>
			<dc:creator><![CDATA[<a href="https://forums.otbots.com/member.php?action=profile&uid=135">emrr91</a>]]></dc:creator>
			<guid isPermaLink="false">https://forums.otbots.com/Thread-there-is-any-script-to-put-torchs--2649</guid>
			<description><![CDATA[I need a script to auto put torchs in the arrow slot when its gone please]]></description>
			<content:encoded><![CDATA[I need a script to auto put torchs in the arrow slot when its gone please]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[shovel desert bug]]></title>
			<link>https://forums.otbots.com/Thread-shovel-desert-bug--2632</link>
			<pubDate>Thu, 27 Apr 2023 09:21:17 -0500</pubDate>
			<dc:creator><![CDATA[<a href="https://forums.otbots.com/member.php?action=profile&uid=16122">dfsbhte</a>]]></dc:creator>
			<guid isPermaLink="false">https://forums.otbots.com/Thread-shovel-desert-bug--2632</guid>
			<description><![CDATA[opensomething(33233,32704,7,3457,{{231 ,607}})<br />
I tried to use this action that opened a hole in the desert, but when I use it I get an error on the console<br />
11:15:18 - Core:Lua:ExecuteScript<img src="https://forums.otbots.com/images/smilies/biggrin.png" alt="Big Grin" title="Big Grin" class="smilie smilie_4" />oString:Cavebot/Action:#shovel desert: 2626: invalid arguments to method call<br />
11:15:50 - Core:Lua:ExecuteScript<img src="https://forums.otbots.com/images/smilies/biggrin.png" alt="Big Grin" title="Big Grin" class="smilie smilie_4" />oString:Cavebot/Action:#shovel desert: 2626: invalid arguments to method call]]></description>
			<content:encoded><![CDATA[opensomething(33233,32704,7,3457,{{231 ,607}})<br />
I tried to use this action that opened a hole in the desert, but when I use it I get an error on the console<br />
11:15:18 - Core:Lua:ExecuteScript<img src="https://forums.otbots.com/images/smilies/biggrin.png" alt="Big Grin" title="Big Grin" class="smilie smilie_4" />oString:Cavebot/Action:#shovel desert: 2626: invalid arguments to method call<br />
11:15:50 - Core:Lua:ExecuteScript<img src="https://forums.otbots.com/images/smilies/biggrin.png" alt="Big Grin" title="Big Grin" class="smilie smilie_4" />oString:Cavebot/Action:#shovel desert: 2626: invalid arguments to method call]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[change gold]]></title>
			<link>https://forums.otbots.com/Thread-change-gold--2618</link>
			<pubDate>Thu, 13 Apr 2023 18:45:42 -0500</pubDate>
			<dc:creator><![CDATA[<a href="https://forums.otbots.com/member.php?action=profile&uid=16122">dfsbhte</a>]]></dc:creator>
			<guid isPermaLink="false">https://forums.otbots.com/Thread-change-gold--2618</guid>
			<description><![CDATA[changegold('red backpack', true, true, true)<br />
I'm using this action but it's not working well,<br />
he checks the npc after checking he doesn't say anything to the npc]]></description>
			<content:encoded><![CDATA[changegold('red backpack', true, true, true)<br />
I'm using this action but it's not working well,<br />
he checks the npc after checking he doesn't say anything to the npc]]></content:encoded>
		</item>
	</channel>
</rss>