<?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 - LUA Scripts]]></title>
		<link>https://forums.otbots.com/</link>
		<description><![CDATA[OTBots Forums - https://forums.otbots.com]]></description>
		<pubDate>Fri, 04 Sep 2026 10:08:03 +0000</pubDate>
		<generator>MyBB</generator>
		<item>
			<title><![CDATA[Equip SSA on damage or low health]]></title>
			<link>https://forums.otbots.com/Thread-FREE-Equip-SSA-on-damage-or-low-health--1895</link>
			<pubDate>Sun, 26 Sep 2021 12:22:52 -0500</pubDate>
			<dc:creator><![CDATA[<a href="https://forums.otbots.com/member.php?action=profile&uid=1">Arkilys</a>]]></dc:creator>
			<guid isPermaLink="false">https://forums.otbots.com/Thread-FREE-Equip-SSA-on-damage-or-low-health--1895</guid>
			<description><![CDATA[Hello.<br />
<br />
<br />
This will equip stone skin amulet (SSA) if one of conditions happens:<br />
1. If your health % is lower or equal than "CONFIG.HealthPC.Equip".<br />
2. If Bot detect a message that you received X damage or more. <span style="font-weight: bold;" class="mycode_b">You must have the channel that shows up damage messages showing up. It's usually Server Log or Default.</span><br />
<br />
This will also unequip if your health % is higher or equal than "CONFIG.HealthPC.Unequip" AND if you didn't received damage to equip it in last 4 seconds, but only if equipped due to damage msg!<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>local CONFIG = {<br />
&nbsp;&nbsp;&nbsp;&nbsp;SSA_ID = 3081,<br />
&nbsp;&nbsp;&nbsp;&nbsp;HealthPC = {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Equip = 50,&nbsp;&nbsp;-- Equip SSA if your health % (hp%) is lower or equal than this value.<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Unequip = 90, -- Unequip SSA if your health % (hp%) is HIGHER or equal than this value. It will not unequip if you received damage to equip it in last 4 seconds.<br />
&nbsp;&nbsp;&nbsp;&nbsp;},<br />
&nbsp;&nbsp;&nbsp;&nbsp;DamageEquip = 150, -- Equips SSA if you receive this damage or more from an attack.<br />
}<br />
<br />
if connected() then<br />
&nbsp;&nbsp;&nbsp;&nbsp;local health_pc = hppc()<br />
&nbsp;&nbsp;&nbsp;&nbsp;local amulet = neck()<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;if LAST_DAMAGE_TIME == nil then<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LAST_DAMAGE_TIME = 0<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;if health_pc &lt;= CONFIG.HealthPC.Equip and (amulet.id == 0 or amulet.id ~= CONFIG.SSA_ID) then<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;moveitems(CONFIG.SSA_ID, 'neck', '', 100)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;wait(300, 500)<br />
&nbsp;&nbsp;&nbsp;&nbsp;elseif health_pc &gt;= CONFIG.HealthPC.Unequip and amulet.id == CONFIG.SSA_ID then<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if CONFIG.DamageEquip == 0 or LAST_DAMAGE_TIME == 0 or (runningtime() - LAST_DAMAGE_TIME) &gt;= 4 then<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;moveitems(CONFIG.SSA_ID, '', 'neck', 100)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;wait(300, 500)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;elseif amulet.id == 0 or amulet.id ~= CONFIG.SSA_ID then<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;local Messages = getnewmessages()<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if type(Messages) == 'table' then<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;local REGEX_DMG_TAKEN&nbsp;&nbsp;&nbsp;&nbsp; = '^You lose (%d+) (%l+) due to an attack by ?a?n? (.-)%.&#36;'<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for _, msg in ipairs(Messages) do<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (msg.sender == nil or msg.sender == '') and (msg.channel == 'Default' or msg.channel == 'Server Log') then<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;local dmgAmount, dmgType, dmgCreature = msg.content:match(REGEX_DMG_TAKEN)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if dmgAmount &gt;= CONFIG.DamageEquip then<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LAST_DAMAGE_TIME = runningtime()<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;moveitems(CONFIG.SSA_ID, 'neck', '', 100)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;wait(300, 500)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
end</code></div></div>]]></description>
			<content:encoded><![CDATA[Hello.<br />
<br />
<br />
This will equip stone skin amulet (SSA) if one of conditions happens:<br />
1. If your health % is lower or equal than "CONFIG.HealthPC.Equip".<br />
2. If Bot detect a message that you received X damage or more. <span style="font-weight: bold;" class="mycode_b">You must have the channel that shows up damage messages showing up. It's usually Server Log or Default.</span><br />
<br />
This will also unequip if your health % is higher or equal than "CONFIG.HealthPC.Unequip" AND if you didn't received damage to equip it in last 4 seconds, but only if equipped due to damage msg!<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>local CONFIG = {<br />
&nbsp;&nbsp;&nbsp;&nbsp;SSA_ID = 3081,<br />
&nbsp;&nbsp;&nbsp;&nbsp;HealthPC = {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Equip = 50,&nbsp;&nbsp;-- Equip SSA if your health % (hp%) is lower or equal than this value.<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Unequip = 90, -- Unequip SSA if your health % (hp%) is HIGHER or equal than this value. It will not unequip if you received damage to equip it in last 4 seconds.<br />
&nbsp;&nbsp;&nbsp;&nbsp;},<br />
&nbsp;&nbsp;&nbsp;&nbsp;DamageEquip = 150, -- Equips SSA if you receive this damage or more from an attack.<br />
}<br />
<br />
if connected() then<br />
&nbsp;&nbsp;&nbsp;&nbsp;local health_pc = hppc()<br />
&nbsp;&nbsp;&nbsp;&nbsp;local amulet = neck()<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;if LAST_DAMAGE_TIME == nil then<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LAST_DAMAGE_TIME = 0<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;if health_pc &lt;= CONFIG.HealthPC.Equip and (amulet.id == 0 or amulet.id ~= CONFIG.SSA_ID) then<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;moveitems(CONFIG.SSA_ID, 'neck', '', 100)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;wait(300, 500)<br />
&nbsp;&nbsp;&nbsp;&nbsp;elseif health_pc &gt;= CONFIG.HealthPC.Unequip and amulet.id == CONFIG.SSA_ID then<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if CONFIG.DamageEquip == 0 or LAST_DAMAGE_TIME == 0 or (runningtime() - LAST_DAMAGE_TIME) &gt;= 4 then<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;moveitems(CONFIG.SSA_ID, '', 'neck', 100)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;wait(300, 500)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;elseif amulet.id == 0 or amulet.id ~= CONFIG.SSA_ID then<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;local Messages = getnewmessages()<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if type(Messages) == 'table' then<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;local REGEX_DMG_TAKEN&nbsp;&nbsp;&nbsp;&nbsp; = '^You lose (%d+) (%l+) due to an attack by ?a?n? (.-)%.&#36;'<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for _, msg in ipairs(Messages) do<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (msg.sender == nil or msg.sender == '') and (msg.channel == 'Default' or msg.channel == 'Server Log') then<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;local dmgAmount, dmgType, dmgCreature = msg.content:match(REGEX_DMG_TAKEN)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if dmgAmount &gt;= CONFIG.DamageEquip then<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LAST_DAMAGE_TIME = runningtime()<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;moveitems(CONFIG.SSA_ID, 'neck', '', 100)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;wait(300, 500)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
end</code></div></div>]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Logout from time to time]]></title>
			<link>https://forums.otbots.com/Thread-FREE-Logout-from-time-to-time--1884</link>
			<pubDate>Mon, 20 Sep 2021 15:09:59 -0500</pubDate>
			<dc:creator><![CDATA[<a href="https://forums.otbots.com/member.php?action=profile&uid=1">Arkilys</a>]]></dc:creator>
			<guid isPermaLink="false">https://forums.otbots.com/Thread-FREE-Logout-from-time-to-time--1884</guid>
			<description><![CDATA[<span style="font-weight: bold;" class="mycode_b"><span style="font-size: large;" class="mycode_size">Logout from time to time</span></span><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>local LOGOUT_TIME = { Min = 600, Max = 835 } -- In seconds. How long should stay online? After that amount of time, the character will be logged out.<br />
<br />
if connected() then<br />
&nbsp;&nbsp;&nbsp;&nbsp;if NEXT_LOGOUT == nil then<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;NEXT_LOGOUT = runningtime() + random(LOGOUT_TIME.Min, LOGOUT_TIME.Max)<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;if runningtime() &gt;= NEXT_LOGOUT then<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;while connected() do<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;wait(1000, 2000)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if not battlesigned() then<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;logout()<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;NEXT_LOGOUT = nil<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
end</code></div></div>]]></description>
			<content:encoded><![CDATA[<span style="font-weight: bold;" class="mycode_b"><span style="font-size: large;" class="mycode_size">Logout from time to time</span></span><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>local LOGOUT_TIME = { Min = 600, Max = 835 } -- In seconds. How long should stay online? After that amount of time, the character will be logged out.<br />
<br />
if connected() then<br />
&nbsp;&nbsp;&nbsp;&nbsp;if NEXT_LOGOUT == nil then<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;NEXT_LOGOUT = runningtime() + random(LOGOUT_TIME.Min, LOGOUT_TIME.Max)<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;if runningtime() &gt;= NEXT_LOGOUT then<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;while connected() do<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;wait(1000, 2000)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if not battlesigned() then<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;logout()<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;NEXT_LOGOUT = nil<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
end</code></div></div>]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Cast spell when player cast too (Combo Spell)]]></title>
			<link>https://forums.otbots.com/Thread-FREE-Cast-spell-when-player-cast-too-Combo-Spell--1883</link>
			<pubDate>Mon, 20 Sep 2021 15:09:29 -0500</pubDate>
			<dc:creator><![CDATA[<a href="https://forums.otbots.com/member.php?action=profile&uid=1">Arkilys</a>]]></dc:creator>
			<guid isPermaLink="false">https://forums.otbots.com/Thread-FREE-Cast-spell-when-player-cast-too-Combo-Spell--1883</guid>
			<description><![CDATA[<span style="font-weight: bold;" class="mycode_b"><span style="font-size: large;" class="mycode_size">Cast spell when player cast too (Combo Spell)</span></span><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>local CONFIG = {<br />
&nbsp;&nbsp;&nbsp;&nbsp;Friends = { 'Friend', 'another friend' }, -- Players that can trigger this script.<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keyword = 'exevo gran mas vis', -- keyword to trigger.<br />
&nbsp;&nbsp;&nbsp;&nbsp;Mana = 600, -- Minimum mana to cast spell.<br />
&nbsp;&nbsp;&nbsp;&nbsp;Spell = 'exevo gran mas vis', -- Spellwords to cast.<br />
}<br />
<br />
if connected() and cancast() and mp() &gt;= CONFIG.Mana then<br />
&nbsp;&nbsp;&nbsp;&nbsp;table.lower(Friends)<br />
&nbsp;&nbsp;&nbsp;&nbsp;local messages = getnewmessages()<br />
&nbsp;&nbsp;&nbsp;&nbsp;for _, msg in ipairs(messages) do<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if msg.content:lower() == CONFIG.Keyword:lower() and table.find(Friends, msg.sender:lower()) ~= nil then<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cast(CONFIG.Spell)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;wait(300, 600) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
end</code></div></div>]]></description>
			<content:encoded><![CDATA[<span style="font-weight: bold;" class="mycode_b"><span style="font-size: large;" class="mycode_size">Cast spell when player cast too (Combo Spell)</span></span><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>local CONFIG = {<br />
&nbsp;&nbsp;&nbsp;&nbsp;Friends = { 'Friend', 'another friend' }, -- Players that can trigger this script.<br />
&nbsp;&nbsp;&nbsp;&nbsp;Keyword = 'exevo gran mas vis', -- keyword to trigger.<br />
&nbsp;&nbsp;&nbsp;&nbsp;Mana = 600, -- Minimum mana to cast spell.<br />
&nbsp;&nbsp;&nbsp;&nbsp;Spell = 'exevo gran mas vis', -- Spellwords to cast.<br />
}<br />
<br />
if connected() and cancast() and mp() &gt;= CONFIG.Mana then<br />
&nbsp;&nbsp;&nbsp;&nbsp;table.lower(Friends)<br />
&nbsp;&nbsp;&nbsp;&nbsp;local messages = getnewmessages()<br />
&nbsp;&nbsp;&nbsp;&nbsp;for _, msg in ipairs(messages) do<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if msg.content:lower() == CONFIG.Keyword:lower() and table.find(Friends, msg.sender:lower()) ~= nil then<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cast(CONFIG.Spell)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;wait(300, 600) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
end</code></div></div>]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Auto Mana Shield if NO monsters]]></title>
			<link>https://forums.otbots.com/Thread-FREE-Auto-Mana-Shield-if-NO-monsters--1882</link>
			<pubDate>Mon, 20 Sep 2021 15:08:43 -0500</pubDate>
			<dc:creator><![CDATA[<a href="https://forums.otbots.com/member.php?action=profile&uid=1">Arkilys</a>]]></dc:creator>
			<guid isPermaLink="false">https://forums.otbots.com/Thread-FREE-Auto-Mana-Shield-if-NO-monsters--1882</guid>
			<description><![CDATA[<span style="font-weight: bold;" class="mycode_b"><span style="font-size: large;" class="mycode_size">Auto Mana Shield if NO monsters</span></span><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>local CONFIG = {<br />
&nbsp;&nbsp;&nbsp;&nbsp;Spell = 'utamo vita', -- Spell to cast.<br />
&nbsp;&nbsp;&nbsp;&nbsp;Mana = 50, -- Mana to cast spell.<br />
&nbsp;&nbsp;&nbsp;&nbsp;SafeHealth = 80, -- Only cast spell if your hp% is equal or higher this value.<br />
&nbsp;&nbsp;&nbsp;&nbsp;Monsters = { 'Rat', 'Demon', 'Rotworm' }, -- Leave it empty to check for all creatures<br />
}<br />
<br />
if connected() and cancast() and not manashielded() and hppc() &gt;= CONFIG.SafeHealth and mp() &gt;= CONFIG.Mana and maround(0, table.unpack(CONFIG.Monsters)) == 0 then<br />
&nbsp;&nbsp;&nbsp;&nbsp;cast(CONFIG.Spell)<br />
&nbsp;&nbsp;&nbsp;&nbsp;wait(300, 600)<br />
end</code></div></div>]]></description>
			<content:encoded><![CDATA[<span style="font-weight: bold;" class="mycode_b"><span style="font-size: large;" class="mycode_size">Auto Mana Shield if NO monsters</span></span><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>local CONFIG = {<br />
&nbsp;&nbsp;&nbsp;&nbsp;Spell = 'utamo vita', -- Spell to cast.<br />
&nbsp;&nbsp;&nbsp;&nbsp;Mana = 50, -- Mana to cast spell.<br />
&nbsp;&nbsp;&nbsp;&nbsp;SafeHealth = 80, -- Only cast spell if your hp% is equal or higher this value.<br />
&nbsp;&nbsp;&nbsp;&nbsp;Monsters = { 'Rat', 'Demon', 'Rotworm' }, -- Leave it empty to check for all creatures<br />
}<br />
<br />
if connected() and cancast() and not manashielded() and hppc() &gt;= CONFIG.SafeHealth and mp() &gt;= CONFIG.Mana and maround(0, table.unpack(CONFIG.Monsters)) == 0 then<br />
&nbsp;&nbsp;&nbsp;&nbsp;cast(CONFIG.Spell)<br />
&nbsp;&nbsp;&nbsp;&nbsp;wait(300, 600)<br />
end</code></div></div>]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Auto Mana Shield if monsters]]></title>
			<link>https://forums.otbots.com/Thread-FREE-Auto-Mana-Shield-if-monsters--1881</link>
			<pubDate>Mon, 20 Sep 2021 15:08:17 -0500</pubDate>
			<dc:creator><![CDATA[<a href="https://forums.otbots.com/member.php?action=profile&uid=1">Arkilys</a>]]></dc:creator>
			<guid isPermaLink="false">https://forums.otbots.com/Thread-FREE-Auto-Mana-Shield-if-monsters--1881</guid>
			<description><![CDATA[<span style="font-weight: bold;" class="mycode_b"><span style="font-size: large;" class="mycode_size">Auto Mana Shield if monsters</span></span><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>local CONFIG = {<br />
&nbsp;&nbsp;&nbsp;&nbsp;Spell = 'utamo vita', -- Spell to cast.<br />
&nbsp;&nbsp;&nbsp;&nbsp;Mana = 50, -- Mana to cast spell.<br />
&nbsp;&nbsp;&nbsp;&nbsp;SafeHealth = 80, -- Only cast spell if your hp% is equal or higher this value.<br />
&nbsp;&nbsp;&nbsp;&nbsp;Monsters = { 'Rat', 'Demon', 'Rotworm' }, -- Leave it empty to check for all creatures<br />
}<br />
<br />
if connected() and cancast() and not manashielded() and hppc() &gt;= CONFIG.SafeHealth and mp() &gt;= CONFIG.Mana and maround(0, table.unpack(CONFIG.Monsters)) &gt; 0 then<br />
&nbsp;&nbsp;&nbsp;&nbsp;cast(CONFIG.Spell)<br />
&nbsp;&nbsp;&nbsp;&nbsp;wait(300, 600)<br />
end</code></div></div>]]></description>
			<content:encoded><![CDATA[<span style="font-weight: bold;" class="mycode_b"><span style="font-size: large;" class="mycode_size">Auto Mana Shield if monsters</span></span><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>local CONFIG = {<br />
&nbsp;&nbsp;&nbsp;&nbsp;Spell = 'utamo vita', -- Spell to cast.<br />
&nbsp;&nbsp;&nbsp;&nbsp;Mana = 50, -- Mana to cast spell.<br />
&nbsp;&nbsp;&nbsp;&nbsp;SafeHealth = 80, -- Only cast spell if your hp% is equal or higher this value.<br />
&nbsp;&nbsp;&nbsp;&nbsp;Monsters = { 'Rat', 'Demon', 'Rotworm' }, -- Leave it empty to check for all creatures<br />
}<br />
<br />
if connected() and cancast() and not manashielded() and hppc() &gt;= CONFIG.SafeHealth and mp() &gt;= CONFIG.Mana and maround(0, table.unpack(CONFIG.Monsters)) &gt; 0 then<br />
&nbsp;&nbsp;&nbsp;&nbsp;cast(CONFIG.Spell)<br />
&nbsp;&nbsp;&nbsp;&nbsp;wait(300, 600)<br />
end</code></div></div>]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Attack closest monster]]></title>
			<link>https://forums.otbots.com/Thread-FREE-Attack-closest-monster--1880</link>
			<pubDate>Mon, 20 Sep 2021 15:07:50 -0500</pubDate>
			<dc:creator><![CDATA[<a href="https://forums.otbots.com/member.php?action=profile&uid=1">Arkilys</a>]]></dc:creator>
			<guid isPermaLink="false">https://forums.otbots.com/Thread-FREE-Attack-closest-monster--1880</guid>
			<description><![CDATA[<span style="font-weight: bold;" class="mycode_b"><span style="font-size: large;" class="mycode_size">Attack closest monster</span></span><br />
This script was developed to be used in Hotkeys. If you want to attack monsters to hunt, together with Cavebot, then use Targeting. Targeting also has options (Targeting -&gt; Targeting Priority) to select the best creature according to your need.<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 connected() then<br />
&nbsp;&nbsp;&nbsp;&nbsp;local best_creature = nil<br />
&nbsp;&nbsp;&nbsp;&nbsp;local creatures = getcreatures('mfs')<br />
&nbsp;&nbsp;&nbsp;&nbsp;for _, creature in ipairs(creatures) do<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if best_creature == nil or best_creature.dist &gt; creature.dist then<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;best_creature = creature<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;if best_creature ~= nil then<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;attack(best_creature.id)<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
end</code></div></div>]]></description>
			<content:encoded><![CDATA[<span style="font-weight: bold;" class="mycode_b"><span style="font-size: large;" class="mycode_size">Attack closest monster</span></span><br />
This script was developed to be used in Hotkeys. If you want to attack monsters to hunt, together with Cavebot, then use Targeting. Targeting also has options (Targeting -&gt; Targeting Priority) to select the best creature according to your need.<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 connected() then<br />
&nbsp;&nbsp;&nbsp;&nbsp;local best_creature = nil<br />
&nbsp;&nbsp;&nbsp;&nbsp;local creatures = getcreatures('mfs')<br />
&nbsp;&nbsp;&nbsp;&nbsp;for _, creature in ipairs(creatures) do<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if best_creature == nil or best_creature.dist &gt; creature.dist then<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;best_creature = creature<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;if best_creature ~= nil then<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;attack(best_creature.id)<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
end</code></div></div>]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Anti Paralyze if no monsters]]></title>
			<link>https://forums.otbots.com/Thread-FREE-Anti-Paralyze-if-no-monsters--1879</link>
			<pubDate>Mon, 20 Sep 2021 15:07:33 -0500</pubDate>
			<dc:creator><![CDATA[<a href="https://forums.otbots.com/member.php?action=profile&uid=1">Arkilys</a>]]></dc:creator>
			<guid isPermaLink="false">https://forums.otbots.com/Thread-FREE-Anti-Paralyze-if-no-monsters--1879</guid>
			<description><![CDATA[<span style="font-weight: bold;" class="mycode_b"><span style="font-size: large;" class="mycode_size">Anti Paralyze if no monsters</span></span><br />
<br />
Note that you can use Healer to do that, it's better to do this there because it will consider other heal rules.<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>local CONFIG = {<br />
&nbsp;&nbsp;&nbsp;&nbsp;Spell = 'exura', -- Spell to cast.<br />
&nbsp;&nbsp;&nbsp;&nbsp;Mana = 25, -- Mana to cast spell.<br />
&nbsp;&nbsp;&nbsp;&nbsp;SafeHealth = 80, -- Only cast spell if your hp% is equal or higher this value.<br />
}<br />
<br />
if connected() and cancast() and paralyzed() and hppc() &gt;= CONFIG.SafeHealth and mp() &gt;= CONFIG.Mana and maround() == 0 then<br />
&nbsp;&nbsp;&nbsp;&nbsp;cast(CONFIG.Spell)<br />
&nbsp;&nbsp;&nbsp;&nbsp;wait(300, 600)<br />
end</code></div></div>]]></description>
			<content:encoded><![CDATA[<span style="font-weight: bold;" class="mycode_b"><span style="font-size: large;" class="mycode_size">Anti Paralyze if no monsters</span></span><br />
<br />
Note that you can use Healer to do that, it's better to do this there because it will consider other heal rules.<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>local CONFIG = {<br />
&nbsp;&nbsp;&nbsp;&nbsp;Spell = 'exura', -- Spell to cast.<br />
&nbsp;&nbsp;&nbsp;&nbsp;Mana = 25, -- Mana to cast spell.<br />
&nbsp;&nbsp;&nbsp;&nbsp;SafeHealth = 80, -- Only cast spell if your hp% is equal or higher this value.<br />
}<br />
<br />
if connected() and cancast() and paralyzed() and hppc() &gt;= CONFIG.SafeHealth and mp() &gt;= CONFIG.Mana and maround() == 0 then<br />
&nbsp;&nbsp;&nbsp;&nbsp;cast(CONFIG.Spell)<br />
&nbsp;&nbsp;&nbsp;&nbsp;wait(300, 600)<br />
end</code></div></div>]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Anti Paralyze]]></title>
			<link>https://forums.otbots.com/Thread-FREE-Anti-Paralyze--1878</link>
			<pubDate>Mon, 20 Sep 2021 15:07:13 -0500</pubDate>
			<dc:creator><![CDATA[<a href="https://forums.otbots.com/member.php?action=profile&uid=1">Arkilys</a>]]></dc:creator>
			<guid isPermaLink="false">https://forums.otbots.com/Thread-FREE-Anti-Paralyze--1878</guid>
			<description><![CDATA[<span style="font-weight: bold;" class="mycode_b"><span style="font-size: large;" class="mycode_size">Anti Paralyze</span></span><br />
<br />
Note that you can use Healer to do that, it's better to do this there because it will consider other heal rules.<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>local CONFIG = {<br />
&nbsp;&nbsp;&nbsp;&nbsp;Spell = 'exura', -- Spell to cast.<br />
&nbsp;&nbsp;&nbsp;&nbsp;Mana = 25, -- Mana to cast spell.<br />
&nbsp;&nbsp;&nbsp;&nbsp;SafeHealth = 80, -- Only cast spell if your hp% is equal or higher this value.<br />
}<br />
<br />
if connected() and cancast() and paralyzed() and hppc() &gt;= CONFIG.SafeHealth and mp() &gt;= CONFIG.Mana then<br />
&nbsp;&nbsp;&nbsp;&nbsp;cast(CONFIG.Spell)<br />
&nbsp;&nbsp;&nbsp;&nbsp;wait(300, 600)<br />
end</code></div></div>]]></description>
			<content:encoded><![CDATA[<span style="font-weight: bold;" class="mycode_b"><span style="font-size: large;" class="mycode_size">Anti Paralyze</span></span><br />
<br />
Note that you can use Healer to do that, it's better to do this there because it will consider other heal rules.<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>local CONFIG = {<br />
&nbsp;&nbsp;&nbsp;&nbsp;Spell = 'exura', -- Spell to cast.<br />
&nbsp;&nbsp;&nbsp;&nbsp;Mana = 25, -- Mana to cast spell.<br />
&nbsp;&nbsp;&nbsp;&nbsp;SafeHealth = 80, -- Only cast spell if your hp% is equal or higher this value.<br />
}<br />
<br />
if connected() and cancast() and paralyzed() and hppc() &gt;= CONFIG.SafeHealth and mp() &gt;= CONFIG.Mana then<br />
&nbsp;&nbsp;&nbsp;&nbsp;cast(CONFIG.Spell)<br />
&nbsp;&nbsp;&nbsp;&nbsp;wait(300, 600)<br />
end</code></div></div>]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Anti Idle]]></title>
			<link>https://forums.otbots.com/Thread-FREE-Anti-Idle--1877</link>
			<pubDate>Mon, 20 Sep 2021 15:06:47 -0500</pubDate>
			<dc:creator><![CDATA[<a href="https://forums.otbots.com/member.php?action=profile&uid=1">Arkilys</a>]]></dc:creator>
			<guid isPermaLink="false">https://forums.otbots.com/Thread-FREE-Anti-Idle--1877</guid>
			<description><![CDATA[<span style="font-weight: bold;" class="mycode_b"><span style="font-size: large;" class="mycode_size">Anti Idle</span></span><br />
<br />
Note that you can use Options -&gt; Anti Idle, but this script does same thing.<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>local TIME = { Min = 600, Max = 835 } -- In seconds. How often should the script turn around?<br />
local TURN_TIMES = 3 -- How many times should the script turn around?<br />
<br />
if NEXT_TURN == nil then<br />
&nbsp;&nbsp;&nbsp;&nbsp;NEXT_TURN = 1<br />
end<br />
<br />
if runningtime() &gt;= NEXT_TURN then<br />
&nbsp;&nbsp;&nbsp;&nbsp;rturn(TURN_TIMES)<br />
&nbsp;&nbsp;&nbsp;&nbsp;NEXT_TURN = runningtime() + random(TIME.Min, TIME.Max)<br />
end</code></div></div>]]></description>
			<content:encoded><![CDATA[<span style="font-weight: bold;" class="mycode_b"><span style="font-size: large;" class="mycode_size">Anti Idle</span></span><br />
<br />
Note that you can use Options -&gt; Anti Idle, but this script does same thing.<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>local TIME = { Min = 600, Max = 835 } -- In seconds. How often should the script turn around?<br />
local TURN_TIMES = 3 -- How many times should the script turn around?<br />
<br />
if NEXT_TURN == nil then<br />
&nbsp;&nbsp;&nbsp;&nbsp;NEXT_TURN = 1<br />
end<br />
<br />
if runningtime() &gt;= NEXT_TURN then<br />
&nbsp;&nbsp;&nbsp;&nbsp;rturn(TURN_TIMES)<br />
&nbsp;&nbsp;&nbsp;&nbsp;NEXT_TURN = runningtime() + random(TIME.Min, TIME.Max)<br />
end</code></div></div>]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Smart Anti Push on player]]></title>
			<link>https://forums.otbots.com/Thread-FREE-Smart-Anti-Push-on-player--1876</link>
			<pubDate>Mon, 20 Sep 2021 15:06:34 -0500</pubDate>
			<dc:creator><![CDATA[<a href="https://forums.otbots.com/member.php?action=profile&uid=1">Arkilys</a>]]></dc:creator>
			<guid isPermaLink="false">https://forums.otbots.com/Thread-FREE-Smart-Anti-Push-on-player--1876</guid>
			<description><![CDATA[<span style="font-weight: bold;" class="mycode_b"><span style="font-size: large;" class="mycode_size">Smart Anti Push on player</span></span><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>local CONFIG = {<br />
&nbsp;&nbsp;Delay = { Min = 200, Max = 500 }, -- Delay after each drop.<br />
&nbsp;&nbsp;Items = {3031, 3147, 3507, 3447}, -- Items to drop.<br />
&nbsp;&nbsp;DropCount = 2, -- How many items should throw on each drop? Example: 2 gold coins per drop. If you have a stack with 100 gold coins, it would drop 2 by 2.<br />
&nbsp;&nbsp;SafeList = { 'friend name', 'another friend' }, -- Characters name that will not trigger this.<br />
&nbsp;&nbsp;MaxItemsDropped = 5 -- Maximum amount of items dropped on the floor. The script will only drop items if the quantity is less than this value.<br />
}<br />
<br />
<br />
if connected() and paroundignore(0, table.unpack(CONFIG.SafeList)) &gt; 0 then<br />
<br />
&nbsp;&nbsp;if tileitemscount == nil then<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;function tileitemscount()<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;local tile_items_count = 0<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;local last_id = 0<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;local tile = gettile(posx(), posy(), posz())<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for _, item in ipairs(tile.items) do<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if itemhasflags(item.id, ITEM_PICKUPABLE) then<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tile_items_count = tile_items_count + 1<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;elseif itemhasflags(item.id, ITEM_NOTMOVEABLE) then<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tile_items_count = 0<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return { tile_items_count, last_id }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;end<br />
<br />
&nbsp;&nbsp;local TILE_ITEMS_INFO = tileitemscount()<br />
&nbsp;&nbsp;while TILE_ITEMS_INFO[1] &lt;= CONFIG.MaxItemsDropped do<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if TILE_ITEMS_INFO[1] == 0 then<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LAST_ITEM = 0<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LAST_ITEM = TILE_ITEMS_INFO[2]<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;local items_dropped_count = 0<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;local containers = getcontainers()<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for _, container in ipairs(containers) do<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for __, item in ipairs(container.items) do<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if table.find(CONFIG.Items, item.id) ~= nil then<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if LAST_ITEM ~= item.id then<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;moveitems(item.id, ground(posx(), posy(), posz()), container.index, CONFIG.DropCount)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;wait(CONFIG.Delay.Min, CONFIG.Delay.Max)<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;items_dropped_count = items_dropped_count + 1<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LAST_ITEM = item.id<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if items_dropped_count == 0 then<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TILE_ITEMS_INFO = tileitemscount()<br />
&nbsp;&nbsp;end<br />
<br />
end</code></div></div>]]></description>
			<content:encoded><![CDATA[<span style="font-weight: bold;" class="mycode_b"><span style="font-size: large;" class="mycode_size">Smart Anti Push on player</span></span><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>local CONFIG = {<br />
&nbsp;&nbsp;Delay = { Min = 200, Max = 500 }, -- Delay after each drop.<br />
&nbsp;&nbsp;Items = {3031, 3147, 3507, 3447}, -- Items to drop.<br />
&nbsp;&nbsp;DropCount = 2, -- How many items should throw on each drop? Example: 2 gold coins per drop. If you have a stack with 100 gold coins, it would drop 2 by 2.<br />
&nbsp;&nbsp;SafeList = { 'friend name', 'another friend' }, -- Characters name that will not trigger this.<br />
&nbsp;&nbsp;MaxItemsDropped = 5 -- Maximum amount of items dropped on the floor. The script will only drop items if the quantity is less than this value.<br />
}<br />
<br />
<br />
if connected() and paroundignore(0, table.unpack(CONFIG.SafeList)) &gt; 0 then<br />
<br />
&nbsp;&nbsp;if tileitemscount == nil then<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;function tileitemscount()<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;local tile_items_count = 0<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;local last_id = 0<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;local tile = gettile(posx(), posy(), posz())<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for _, item in ipairs(tile.items) do<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if itemhasflags(item.id, ITEM_PICKUPABLE) then<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tile_items_count = tile_items_count + 1<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;elseif itemhasflags(item.id, ITEM_NOTMOVEABLE) then<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tile_items_count = 0<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return { tile_items_count, last_id }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;end<br />
<br />
&nbsp;&nbsp;local TILE_ITEMS_INFO = tileitemscount()<br />
&nbsp;&nbsp;while TILE_ITEMS_INFO[1] &lt;= CONFIG.MaxItemsDropped do<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if TILE_ITEMS_INFO[1] == 0 then<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LAST_ITEM = 0<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LAST_ITEM = TILE_ITEMS_INFO[2]<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;local items_dropped_count = 0<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;local containers = getcontainers()<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for _, container in ipairs(containers) do<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for __, item in ipairs(container.items) do<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if table.find(CONFIG.Items, item.id) ~= nil then<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if LAST_ITEM ~= item.id then<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;moveitems(item.id, ground(posx(), posy(), posz()), container.index, CONFIG.DropCount)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;wait(CONFIG.Delay.Min, CONFIG.Delay.Max)<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;items_dropped_count = items_dropped_count + 1<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LAST_ITEM = item.id<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if items_dropped_count == 0 then<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TILE_ITEMS_INFO = tileitemscount()<br />
&nbsp;&nbsp;end<br />
<br />
end</code></div></div>]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Smart Anti Push]]></title>
			<link>https://forums.otbots.com/Thread-FREE-Smart-Anti-Push--1875</link>
			<pubDate>Mon, 20 Sep 2021 15:06:13 -0500</pubDate>
			<dc:creator><![CDATA[<a href="https://forums.otbots.com/member.php?action=profile&uid=1">Arkilys</a>]]></dc:creator>
			<guid isPermaLink="false">https://forums.otbots.com/Thread-FREE-Smart-Anti-Push--1875</guid>
			<description><![CDATA[<span style="font-weight: bold;" class="mycode_b"><span style="font-size: large;" class="mycode_size">Smart Anti Push on player</span></span><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>local CONFIG = {<br />
&nbsp;&nbsp;Delay = { Min = 200, Max = 500 }, -- Delay after each drop.<br />
&nbsp;&nbsp;Items = {3031, 3147, 3507, 3447}, -- Items to drop.<br />
&nbsp;&nbsp;DropCount = 2, -- How many items should throw on each drop? Example: 2 gold coins per drop. If you have a stack with 100 gold coins, it would drop 2 by 2.<br />
&nbsp;&nbsp;SafeList = { 'friend name', 'another friend' }, -- Characters name that will not trigger this.<br />
&nbsp;&nbsp;MaxItemsDropped = 5 -- Maximum amount of items dropped on the floor. The script will only drop items if the quantity is less than this value.<br />
}<br />
<br />
<br />
if connected() and paroundignore(0, table.unpack(CONFIG.SafeList)) &gt; 0 then<br />
<br />
&nbsp;&nbsp;if tileitemscount == nil then<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;function tileitemscount()<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;local tile_items_count = 0<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;local last_id = 0<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;local tile = gettile(posx(), posy(), posz())<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for _, item in ipairs(tile.items) do<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if itemhasflags(item.id, ITEM_PICKUPABLE) then<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tile_items_count = tile_items_count + 1<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;elseif itemhasflags(item.id, ITEM_NOTMOVEABLE) then<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tile_items_count = 0<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return { tile_items_count, last_id }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;end<br />
<br />
&nbsp;&nbsp;local TILE_ITEMS_INFO = tileitemscount()<br />
&nbsp;&nbsp;while TILE_ITEMS_INFO[1] &lt;= CONFIG.MaxItemsDropped do<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if TILE_ITEMS_INFO[1] == 0 then<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LAST_ITEM = 0<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LAST_ITEM = TILE_ITEMS_INFO[2]<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;local items_dropped_count = 0<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;local containers = getcontainers()<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for _, container in ipairs(containers) do<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for __, item in ipairs(container.items) do<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if table.find(CONFIG.Items, item.id) ~= nil then<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if LAST_ITEM ~= item.id then<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;moveitems(item.id, ground(posx(), posy(), posz()), container.index, CONFIG.DropCount)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;wait(CONFIG.Delay.Min, CONFIG.Delay.Max)<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;items_dropped_count = items_dropped_count + 1<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LAST_ITEM = item.id<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if items_dropped_count == 0 then<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TILE_ITEMS_INFO = tileitemscount()<br />
&nbsp;&nbsp;end<br />
<br />
end</code></div></div>]]></description>
			<content:encoded><![CDATA[<span style="font-weight: bold;" class="mycode_b"><span style="font-size: large;" class="mycode_size">Smart Anti Push on player</span></span><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>local CONFIG = {<br />
&nbsp;&nbsp;Delay = { Min = 200, Max = 500 }, -- Delay after each drop.<br />
&nbsp;&nbsp;Items = {3031, 3147, 3507, 3447}, -- Items to drop.<br />
&nbsp;&nbsp;DropCount = 2, -- How many items should throw on each drop? Example: 2 gold coins per drop. If you have a stack with 100 gold coins, it would drop 2 by 2.<br />
&nbsp;&nbsp;SafeList = { 'friend name', 'another friend' }, -- Characters name that will not trigger this.<br />
&nbsp;&nbsp;MaxItemsDropped = 5 -- Maximum amount of items dropped on the floor. The script will only drop items if the quantity is less than this value.<br />
}<br />
<br />
<br />
if connected() and paroundignore(0, table.unpack(CONFIG.SafeList)) &gt; 0 then<br />
<br />
&nbsp;&nbsp;if tileitemscount == nil then<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;function tileitemscount()<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;local tile_items_count = 0<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;local last_id = 0<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;local tile = gettile(posx(), posy(), posz())<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for _, item in ipairs(tile.items) do<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if itemhasflags(item.id, ITEM_PICKUPABLE) then<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tile_items_count = tile_items_count + 1<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;elseif itemhasflags(item.id, ITEM_NOTMOVEABLE) then<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tile_items_count = 0<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return { tile_items_count, last_id }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;end<br />
<br />
&nbsp;&nbsp;local TILE_ITEMS_INFO = tileitemscount()<br />
&nbsp;&nbsp;while TILE_ITEMS_INFO[1] &lt;= CONFIG.MaxItemsDropped do<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if TILE_ITEMS_INFO[1] == 0 then<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LAST_ITEM = 0<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LAST_ITEM = TILE_ITEMS_INFO[2]<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;local items_dropped_count = 0<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;local containers = getcontainers()<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for _, container in ipairs(containers) do<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for __, item in ipairs(container.items) do<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if table.find(CONFIG.Items, item.id) ~= nil then<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if LAST_ITEM ~= item.id then<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;moveitems(item.id, ground(posx(), posy(), posz()), container.index, CONFIG.DropCount)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;wait(CONFIG.Delay.Min, CONFIG.Delay.Max)<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;items_dropped_count = items_dropped_count + 1<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LAST_ITEM = item.id<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if items_dropped_count == 0 then<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TILE_ITEMS_INFO = tileitemscount()<br />
&nbsp;&nbsp;end<br />
<br />
end</code></div></div>]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Alert if pushed]]></title>
			<link>https://forums.otbots.com/Thread-FREE-Alert-if-pushed--1874</link>
			<pubDate>Mon, 20 Sep 2021 15:05:41 -0500</pubDate>
			<dc:creator><![CDATA[<a href="https://forums.otbots.com/member.php?action=profile&uid=1">Arkilys</a>]]></dc:creator>
			<guid isPermaLink="false">https://forums.otbots.com/Thread-FREE-Alert-if-pushed--1874</guid>
			<description><![CDATA[<span style="font-weight: bold;" class="mycode_b"><span style="font-size: large;" class="mycode_size">Alert if pushed</span></span><br />
<br />
You can use Alerts -&gt; Moved, but this script also works.<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>local KEEP_PLAYING = false -- Should keep playing alert if get pushed? If false then it will play once.<br />
<br />
if connected() then<br />
&nbsp;&nbsp;&nbsp;&nbsp;if TRIGGERED == nil then<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TRIGGERED = false<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;player_x = posx()<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;player_y = posy()<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;if posx() ~= player_x or posy() ~= player_y then<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TRIGGERED = true<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;if TRIGGERED then<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;playsound('default')<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;flashclient()<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if not KEEP_PLAYING then<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TRIGGERED = false<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;player_x = posx()<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;player_y = posy()<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
else<br />
&nbsp;&nbsp;&nbsp;&nbsp;TRIGGERED = nil<br />
end</code></div></div>]]></description>
			<content:encoded><![CDATA[<span style="font-weight: bold;" class="mycode_b"><span style="font-size: large;" class="mycode_size">Alert if pushed</span></span><br />
<br />
You can use Alerts -&gt; Moved, but this script also works.<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>local KEEP_PLAYING = false -- Should keep playing alert if get pushed? If false then it will play once.<br />
<br />
if connected() then<br />
&nbsp;&nbsp;&nbsp;&nbsp;if TRIGGERED == nil then<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TRIGGERED = false<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;player_x = posx()<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;player_y = posy()<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;if posx() ~= player_x or posy() ~= player_y then<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TRIGGERED = true<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;if TRIGGERED then<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;playsound('default')<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;flashclient()<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if not KEEP_PLAYING then<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TRIGGERED = false<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;player_x = posx()<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;player_y = posy()<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
else<br />
&nbsp;&nbsp;&nbsp;&nbsp;TRIGGERED = nil<br />
end</code></div></div>]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Alert on X mana]]></title>
			<link>https://forums.otbots.com/Thread-Alert-on-X-mana--1873</link>
			<pubDate>Mon, 20 Sep 2021 15:05:00 -0500</pubDate>
			<dc:creator><![CDATA[<a href="https://forums.otbots.com/member.php?action=profile&uid=1">Arkilys</a>]]></dc:creator>
			<guid isPermaLink="false">https://forums.otbots.com/Thread-Alert-on-X-mana--1873</guid>
			<description><![CDATA[<span style="font-weight: bold;" class="mycode_b"><span style="font-size: large;" class="mycode_size">Alert on X mana</span></span><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>local MANA = 1000 -- If mana is equal or higher than this value then play sound.<br />
<br />
if mp() &gt;= MANA then<br />
&nbsp;&nbsp;&nbsp;&nbsp;playsound('default')<br />
&nbsp;&nbsp;&nbsp;&nbsp;flashclient()<br />
end</code></div></div><br />
<br />
<span style="font-weight: bold;" class="mycode_b"><span style="font-size: large;" class="mycode_size">Alert on mana full</span></span><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 mppc() &gt;= 100 then<br />
&nbsp;&nbsp;&nbsp;&nbsp;playsound('default')<br />
&nbsp;&nbsp;&nbsp;&nbsp;flashclient()<br />
end</code></div></div>]]></description>
			<content:encoded><![CDATA[<span style="font-weight: bold;" class="mycode_b"><span style="font-size: large;" class="mycode_size">Alert on X mana</span></span><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>local MANA = 1000 -- If mana is equal or higher than this value then play sound.<br />
<br />
if mp() &gt;= MANA then<br />
&nbsp;&nbsp;&nbsp;&nbsp;playsound('default')<br />
&nbsp;&nbsp;&nbsp;&nbsp;flashclient()<br />
end</code></div></div><br />
<br />
<span style="font-weight: bold;" class="mycode_b"><span style="font-size: large;" class="mycode_size">Alert on mana full</span></span><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 mppc() &gt;= 100 then<br />
&nbsp;&nbsp;&nbsp;&nbsp;playsound('default')<br />
&nbsp;&nbsp;&nbsp;&nbsp;flashclient()<br />
end</code></div></div>]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Alert on item count]]></title>
			<link>https://forums.otbots.com/Thread-FREE-Alert-on-item-count--1872</link>
			<pubDate>Mon, 20 Sep 2021 15:04:33 -0500</pubDate>
			<dc:creator><![CDATA[<a href="https://forums.otbots.com/member.php?action=profile&uid=1">Arkilys</a>]]></dc:creator>
			<guid isPermaLink="false">https://forums.otbots.com/Thread-FREE-Alert-on-item-count--1872</guid>
			<description><![CDATA[<span style="font-weight: bold;" class="mycode_b"><span style="font-size: large;" class="mycode_size">Alert on item count</span></span><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>local CONFIG = {<br />
&nbsp;&nbsp;&nbsp;&nbsp;Item = 'spear', -- Item to check. Id or name.<br />
&nbsp;&nbsp;&nbsp;&nbsp;Count = 10, -- If lower than this then play sound.<br />
&nbsp;&nbsp;&nbsp;&nbsp;Location = '', -- Container to check. Leave empty to check all open containers. <br />
&nbsp;&nbsp;&nbsp;&nbsp;ConsiderEquipments = true, -- Should also count from equipments?<br />
}<br />
<br />
if connected() and itemcount(CONFIG.Item, CONFIG.Location, CONFIG.ConsiderEquipments) &lt; CONFIG.Count then<br />
&nbsp;&nbsp;&nbsp;&nbsp;playsound('default')<br />
&nbsp;&nbsp;&nbsp;&nbsp;flashclient()<br />
end</code></div></div>]]></description>
			<content:encoded><![CDATA[<span style="font-weight: bold;" class="mycode_b"><span style="font-size: large;" class="mycode_size">Alert on item count</span></span><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>local CONFIG = {<br />
&nbsp;&nbsp;&nbsp;&nbsp;Item = 'spear', -- Item to check. Id or name.<br />
&nbsp;&nbsp;&nbsp;&nbsp;Count = 10, -- If lower than this then play sound.<br />
&nbsp;&nbsp;&nbsp;&nbsp;Location = '', -- Container to check. Leave empty to check all open containers. <br />
&nbsp;&nbsp;&nbsp;&nbsp;ConsiderEquipments = true, -- Should also count from equipments?<br />
}<br />
<br />
if connected() and itemcount(CONFIG.Item, CONFIG.Location, CONFIG.ConsiderEquipments) &lt; CONFIG.Count then<br />
&nbsp;&nbsp;&nbsp;&nbsp;playsound('default')<br />
&nbsp;&nbsp;&nbsp;&nbsp;flashclient()<br />
end</code></div></div>]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[House runemaker (without REFILL AND DANGER!)]]></title>
			<link>https://forums.otbots.com/Thread-FREE-House-runemaker-without-REFILL-AND-DANGER--1866</link>
			<pubDate>Fri, 17 Sep 2021 11:38:15 -0500</pubDate>
			<dc:creator><![CDATA[<a href="https://forums.otbots.com/member.php?action=profile&uid=1">Arkilys</a>]]></dc:creator>
			<guid isPermaLink="false">https://forums.otbots.com/Thread-FREE-House-runemaker-without-REFILL-AND-DANGER--1866</guid>
			<description><![CDATA[<span style="font-size: large;" class="mycode_size">House runemaker (without REFILL AND DANGER!)</span><br />
<br />
This script doesn't contains refill or danger, so you may use it with Runemaker -&gt; Refill Settings.<br />
<br />
It checks if Runemaker -&gt; Refill Settings is currently NOT working before going to make rune place, cast spell and walk back. However, it will not stop walking if danger appears while walking back or so.<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>local SPELL_MANA = 100 -- Mana to go out and make rune.<br />
local SPELL_WORDS = 'adori gran' -- Spellwords to make rune.<br />
local LOCATION_MAKERUNE = { X = 12345, Y = 12345, Z = 6 } -- Location to go when Mana is higher than SPELL_MANA.<br />
local LOCATION_WALKBACK = { X = 12345, Y = 12345, Z = 6 } -- Location to go after making rune or when no mana to make rune.<br />
<br />
<br />
<br />
<br />
local CHECK_LOCATION = false<br />
<br />
if runemaker_isondanger() == false and runemaker_isrefilling() == false then<br />
&nbsp;&nbsp;&nbsp;&nbsp;if mp() &gt;= SPELL_MANA then<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if reachlocation(LOCATION_MAKERUNE.X, LOCATION_MAKERUNE.Y, LOCATION_MAKERUNE.Z, true) then<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;wait(400, 800)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cast(SPELL_WORDS)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;wait(200, 400)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CHECK_LOCATION = true<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;else<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CHECK_LOCATION = true<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;if CHECK_LOCATION and (posx() ~= LOCATION_WALKBACK.X or posy() ~= LOCATION_WALKBACK.Y) then<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;reachlocation(LOCATION_WALKBACK.X, LOCATION_WALKBACK.Y, LOCATION_WALKBACK.Z, true)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;wait(400, 800)<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
end</code></div></div><br />
The very same script, but using alana sio to walk back.<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>local SPELL_MANA = 100 -- Mana to go out and make rune.<br />
local SPELL_WORDS = 'adori gran' -- Spellwords to make rune.<br />
local LOCATION_MAKERUNE = { X = 12345, Y = 12345, Z = 6 } -- Location to go when Mana is higher than SPELL_MANA.<br />
<br />
<br />
if runemaker_isondanger() == false and runemaker_isrefilling() == false then<br />
&nbsp;&nbsp;&nbsp;&nbsp;if mp() &gt;= SPELL_MANA then<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if reachlocation(LOCATION_MAKERUNE.X, LOCATION_MAKERUNE.Y, LOCATION_MAKERUNE.Z, true) then<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;wait(400, 800)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cast(SPELL_WORDS)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;wait(200, 400)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;say('alana sio')<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;elseif posx() == LOCATION_MAKERUNE.X and posy() == LOCATION_MAKERUNE.Y then<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;say('alana sio')<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;wait(400, 800)<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
end</code></div></div><br />
<span style="font-size: 1pt;" class="mycode_size">keywords: house runemaker, house runes, home runemaker, home runes</span>]]></description>
			<content:encoded><![CDATA[<span style="font-size: large;" class="mycode_size">House runemaker (without REFILL AND DANGER!)</span><br />
<br />
This script doesn't contains refill or danger, so you may use it with Runemaker -&gt; Refill Settings.<br />
<br />
It checks if Runemaker -&gt; Refill Settings is currently NOT working before going to make rune place, cast spell and walk back. However, it will not stop walking if danger appears while walking back or so.<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>local SPELL_MANA = 100 -- Mana to go out and make rune.<br />
local SPELL_WORDS = 'adori gran' -- Spellwords to make rune.<br />
local LOCATION_MAKERUNE = { X = 12345, Y = 12345, Z = 6 } -- Location to go when Mana is higher than SPELL_MANA.<br />
local LOCATION_WALKBACK = { X = 12345, Y = 12345, Z = 6 } -- Location to go after making rune or when no mana to make rune.<br />
<br />
<br />
<br />
<br />
local CHECK_LOCATION = false<br />
<br />
if runemaker_isondanger() == false and runemaker_isrefilling() == false then<br />
&nbsp;&nbsp;&nbsp;&nbsp;if mp() &gt;= SPELL_MANA then<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if reachlocation(LOCATION_MAKERUNE.X, LOCATION_MAKERUNE.Y, LOCATION_MAKERUNE.Z, true) then<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;wait(400, 800)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cast(SPELL_WORDS)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;wait(200, 400)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CHECK_LOCATION = true<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;else<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CHECK_LOCATION = true<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;if CHECK_LOCATION and (posx() ~= LOCATION_WALKBACK.X or posy() ~= LOCATION_WALKBACK.Y) then<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;reachlocation(LOCATION_WALKBACK.X, LOCATION_WALKBACK.Y, LOCATION_WALKBACK.Z, true)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;wait(400, 800)<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
end</code></div></div><br />
The very same script, but using alana sio to walk back.<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>local SPELL_MANA = 100 -- Mana to go out and make rune.<br />
local SPELL_WORDS = 'adori gran' -- Spellwords to make rune.<br />
local LOCATION_MAKERUNE = { X = 12345, Y = 12345, Z = 6 } -- Location to go when Mana is higher than SPELL_MANA.<br />
<br />
<br />
if runemaker_isondanger() == false and runemaker_isrefilling() == false then<br />
&nbsp;&nbsp;&nbsp;&nbsp;if mp() &gt;= SPELL_MANA then<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if reachlocation(LOCATION_MAKERUNE.X, LOCATION_MAKERUNE.Y, LOCATION_MAKERUNE.Z, true) then<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;wait(400, 800)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cast(SPELL_WORDS)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;wait(200, 400)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;say('alana sio')<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br />
&nbsp;&nbsp;&nbsp;&nbsp;elseif posx() == LOCATION_MAKERUNE.X and posy() == LOCATION_MAKERUNE.Y then<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;say('alana sio')<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;wait(400, 800)<br />
&nbsp;&nbsp;&nbsp;&nbsp;end<br />
end</code></div></div><br />
<span style="font-size: 1pt;" class="mycode_size">keywords: house runemaker, house runes, home runemaker, home runes</span>]]></content:encoded>
		</item>
	</channel>
</rss>