0% found this document useful (0 votes)
5K views

Elf Variables

This document provides examples of Lua variables and functions that can be used in Tibia bots to retrieve status information. Some key variables include $mp to check current mana, $level to check level, $posx to check X position, and $itemcount to check item counts. Slot variables like $rhandslot can check equipped items. Examples show how to use conditional statements like if/then to trigger actions based on status checks.

Uploaded by

XanderXZ
Copyright
© Attribution Non-Commercial (BY-NC)
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
5K views

Elf Variables

This document provides examples of Lua variables and functions that can be used in Tibia bots to retrieve status information. Some key variables include $mp to check current mana, $level to check level, $posx to check X position, and $itemcount to check item counts. Slot variables like $rhandslot can check equipped items. Examples show how to use conditional statements like if/then to trigger actions based on status checks.

Uploaded by

XanderXZ
Copyright
© Attribution Non-Commercial (BY-NC)
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 16

・ $mp will return your current mana

example: if [$mp <= 200] mana self, it will use a mana potion if your mana is under 200

・ $maxmp will return your max mana


example: if [($maxmp-$mp) >= 500] mana self, it will use a mana potion if your maxmana-mana is higher than 500

・ $mppc will return your mana percentage


example: if [$mppc <= 60] mana self, it will make you drink a mana potion if your MP% is lower than 60

・ $hp will return your current health


example: if [$hp <= 1500] playsound lowhealth.wav, it will play the sound lowhealth.wav if your health is under 1500

・ $maxhp will return your max health


example: if [$hp < 65*$maxhp/100] say 'exura san', it will cast 'exura san' if your HP% is lower than 65

・ $hppc will return your health percentage


example: if [$hppc <= 90] say 'exura', it will make you cast if your HP% is lower than 90

・ $cap will return your capacity


example: if [$cap < 300] gotolabel deposit, it will go to the label 'deposit' if your cap is below 300

・ $exp will return your experience


example: if [$exp > 4200] gotolabel logout, it will go to the label 'logout' if your exp is higher than 4200

・ $level will return your level


example: if [$level >= 9] gotolabel gobuyexura, it will go to the label 'gobuyexura' if you reached level 9

・ $mlevel will return your magic level


example: if [$mlevel >= 15 && $level >= 45] sd target, it will shoot an SD rune if your level is higher than 45 and your magic
level higher 15

・ $posx will return your current X position


example: if [$posx > 12345 && $posx < 54321] xlog, it will logout if your X position is between 12345 and 54321

・ $posy will return your current Y position


example: say 'Y = $posy', it will make your character say your current Y position

・ $posz will return your current Z position


example: if [$posz == 7] say 'bye', it will make your character say bye if your Z position is equal to 7

・ $soul will return your current amount of soul points


example: if [$soul >= 5 && $level >= 45] makerune [$maxmp-20] 'adori gran mort', it will make a sudden death rune if your
soul points are higher than 5 and your are above level 45 when you are at maxmana-20

・ $stamina will return your current stamina time in minutes


example: if [$stamina <= 60*14] xlog, it will make you logout if your stamina is below 14 hours

・ $count will return the last thing you counted


example: countitemsvisible 3031 | if [$count >= 1500] gotolabel depositgold, it will go to the label 'depositgold' if the ammount
of items of ID 3031 is higher than 1500

・ $screenleft it will return you the correct number to position a text in the left
part of screen.
example: auto 200 setpos $screenleft 100 | displaytext 'Testing the position', it will show the text: 'Testing the position' on the
X coordinates in the left part of Tibia screen and in Y coordinates in the pixel 100

・ $screenright it will return you the correct number to position a text in the
right part of screen.
example: auto 200 setpos $screenright 100 | displaytext 'Testing the position', it will show the text: 'Testing the position' on the
X coordinates in the right part of Tibia screen and in Y coordinates in the pixel 100

・ $screentop it will return you the correct number to position a text in the top
part of screen.
example: auto 200 setpos 256 [$screentop+200] | displaytext 'Testing the position', it will show the text: 'Testing the position'
on the X coordinates in the pixel 256 of Tibia screen and in Y coordinates in the top part and more 200 pixels below

・ $screenbottom it will return you the correct number to position a text in


the bottom part of screen.
example: auto 200 setpos 256 [$screenbottom-200] | displaytext 'Testing the position', it will show the text: 'Testing the
position' on the X coordinates in the pixel 256 of Tibia screen and in Y coordinates in the bottom part and more 200 pixels
above

・ $name will return your own name


example: say 'hi, my name is $name', it will make you say: 'hi, my name is YOURNAME'

・ $time will return a time in seconds


example: ..., explanation about the example

・ $timems will return a time in miliseconds


example: ..., explanation about the example

・ $deltatime will return how long since you loaded the bot (in seconds)
example: setcaption 'Played this session: $deltatime', it will show in the window title: 'Played this session: TIMEINSECONDS'

・ $deltatimems will return how long since you loaded the bot (in
miliseconds)
example: setcaption 'Played this session: $deltatimems', it will show in the window title: 'Played this session:
TIMEINMILISECONDS'

・ $exptnl will return how much experience left for your next level
example: setcaption 'Exp Left: $exptnl', it will show in the window title the text: 'Exp Left: EXPERIENCETONEXTLEVEL'

・ $exph will return how your average experience/hour


example: setcaption 'Exp Left: $exptnl / Exp/Hour: $exph', it will show in the window title the text: 'Exp Left:
EXPERIENCETONEXTLEVEL / Exp/Hour: EXPERIENCEPERHOUR'

・ $expgained will return how much experience you gained since you loaded
the ElfBot
example: setcaption 'Exp Left: $exptnl / Exp/Hour: $exph' / Gained this session: $expgained, it will show in the window title the
text: 'Exp Left: EXPERIENCETONEXTLEVEL / Exp/Hour: EXPERIENCEPERHOUR / Gained this session: EXPERIENCEYOUGAINED'

・ $timetnl will return you how long would you take to level up with your
current experience/hour
example: setcaption 'Exp Left: $exptnl / Exp/Hour: $exph' / Gained this session: $expgained / Time Left: $timetnl, it will show
in the window title the text: 'Exp Left: EXPERIENCETONEXTLEVEL / Exp/Hour: EXPERIENCEPERHOUR / Gained this session:
EXPERIENCEYOUGAINED / Time Left: TIMELEFTFORLEVEL'

・ $exptolevel.xx will return how much of experience left for XX level


example: setcaption 'Exp to Level 100: $exptolevel.100', it will show in the window title the text: 'Exp to Level 100:
EXPERIENCETOLEVEL100'

・ $timetolevel.xx will return how long would you take to level to XX level
with your current experience/hour
example: setcaption 'Time to Level 100: $timetolevel.100', it will show in the window title the text: 'Time to Level 100:
TIMETOLEVEL100'

・ $monstersaround.xx will return you how many monsters are around XX


SQMs around you
example: if [$monstersaround.1 >= 4] say Exori, it will make you cast 'Exori' if there are more than 4 monsters around you in a
range of 1 SQM

・ $playersaround.xx will return you how many players are around XX SQMs
around you
example: if [$playersaround.4 == 0] say Exori Mas, it will make you cast 'Exori Mas' if there aren't any players around you in a
range of 4 SQMs

・ $sbtime will return how much time of soft boots you still have (you must
look the soft boots first)
example: setcaption 'Soft Boots Time: $formattime.$sbtime', it will show in the window title: 'Soft Boots Time: SOFTTIME'

・ $formattime.yy will transform any number to a time number, the number


must be in seconds, like 06:07:08 or 06h07m08s
example: setcaption 'Played this session: $formattime.$deltatime', it will show in the window title: 'Played this session:
FORMATEDTIME'

・ $formatnum.yy will transform any number to a number, like transforming


160293 to 160,293
example: setcaption 'Exp To Level 167: $formatnum.$exptolevel.167, it will show in the window title: 'Exp To Level 167:
FORMATEDEXPTOLEVEL167'

・ $itemcount.ITEMID will return the ammount of a visible item, you must


change the ITEMID to a number, like 1234
example: if [$itemcount.3286 > 10] gotolabel droplootonground, it will go to the label 'droplootonground' if the ammount of
visible items of ID 3286 is higher than 10

・ $itemcount.'ITEMNAME' will return the ammount of a item that you are


using, you must change the ITEMNAME to a item name, like 'great mana
potion'
example: if [$itemcount.'mana potion' <= 50] gotolabel buymfs, it will go to the label 'buymfs' if a message with 'Using one of
50 mana potions...' appears

・ $poisoned will return if you are poisoned


example: if [$poisoned == 1] say 'Exana Pox', it will cast 'Exana Pox' if you're poisoned

・ $poisondmg will return how much of damage you are recieving from the
poison
example: if [$poisondmg > 10] say 'Exana Pox], it will say 'Exana Pox' if the poison damage is higher than 10

・ $ringslot.property will return the ID or COUNT of the item in the ring slot
・ $beltslot.property will return the ID or COUNT of the item in the belt
(ammunition) slot
・ $backslot.property will return the ID or COUNT of the item in the
backpack slot
・ $rhandslot.property will return the ID or COUNT of the item in the right
hand slot
・ $lhandslot.property will return the ID or COUNT of the item in the left
hand slot
・ $amuletslot.property will return the ID or COUNT of the item in the
amulet slot
・ $bootsslot.property will return the ID or COUNT of the item in the boots
slot
・ $legsslot.property will return the ID or COUNT of the item in the legs slot
・ $chestslot.property will return the ID or COUNT of the item in the chest
(armor) slot
These are the properties the slot variables can have.
count -> it will return the amount of items that are in the desired slot.
example: if [$beltslot.count < 20] refillammo, it will refill the ammunition if you have less than 20 items in the left hand
id -> it will return the number ID of the item that are in the desired slot.
example: if [$lhandslot.id != 1234] equiplhand 1234, it will equip the left hand with a 1234 if there isn't a 1234 equiped

・ $manashielded will return if you are using mana shield


example: if [$manashielded == 0] say 'Utamo Vita', it will cast 'Utamo Vita' if you are not mana shielded

・ $drunk will return if you are drunk


example: if [$drunk == 1] {equipsring 3097 3099 | wait 15000 | equipring 3007}, it will equip the ring of ID 3097, and after 15
seconds, it will equip the ring of ID 3007 to check if you're still drunk

・ $hasted will return if you are using haste


example: if [$hasted == 0] say 'Utani Hur', it will cast 'Utani Hur' if you are not hasting

・ $paralyzed will return if you are paralyzed


example: if [$paralyzed == 1] say 'Exura', it will cast 'Exura' if you are paralyzed

・ $connected will return if you are connected


example: if [$connected == 0] reconnect, it will make you reconnect if you are not connected

・ $pkname will return the name of player that's attacking you


example: ifplayerattacking attack $pkname, it will make attack back the player that's attacking you

・ $fileisline.'filename'.'linetext', it will return 1 if a certain line in the


'filename' equals to 'linetext', 0 otherwise.
example: if [$fileisline.'test.txt'.'utani gran hur'] say 'Okay', it will make you say 'Okay' if there is a line with the words 'utani
gran hur' in the file 'test.txt'.

・ $filerandomline.'filename', it will return a random line from the


'filename'.
example: if [$curmsg.content ? 'hello' && $curmsg.isdefault] say "$filerandomline.'himsgsresponder.txt'", it will make you say a
random line from the file 'himsgsresponder.txt' if someone says hello for you in the default channel.

・ $fileline.'filename.xyz'.n will return the nth line of the file filename.xyz


example: say '[$fileline."testbot.txt".30]', it will make you say the 30th line of the file testbot.txt

・ $token.'text'.n will return the nth token (word/element) of a string. A


token is either a word that ends with a space, or the inside of a
singlequote/doublequote. If you omit to specify n, then the returned string will
simply be the first token of 'text'. If 'text' is '12 "34 56" 78', n=1 will return: 12,
n=2 will return: 34 56, and n=3 will return: 78
example: if [$token.'$lastmsg.sender' == 'GM'] logout, it will make you logout if the first name of the last message you recieve
is 'GM'

・ $cutstr.'string'.startpos.lenght, will let you cut a part of a sentence


example: $cutstr.'123456'.2.3, will return 234, that is 3 characters starting at the 2nd character. You can also omit the lenght
paramter, in which case the remainder of the string will be returned ($cutstr.'123456'.2 will return 23456)

・ $mshieldtime, will return the time left in miliseconds to your magic shield
goes out
example: if [$mshieldtime <= 8000] say 'Utamo Vita', it will make you cast 'Utamo Vita' if your magic shield is going out in less
than 8 seconds
・ $hastetime, will return the time left in miliseconds to your haste goes out
example: if [$hastetime <= 2000] say 'Utani Gran Hur', it will make you cast 'Utani Gran Hur' if your haste is going out in less
than 2 seconds

・ $invistime, will return the time left in miliseconds to your invisible goes out
example: if [$invistime <= 5000] say 'Utana Vid', it will make you cast 'Utana Vid' if your invisible is going out in less than 5
seconds

・ $strengthtime, will return the time left in miliseconds to your strenght goes
out
example: if [$strengthtime <= 1500] say 'Utito Tempo', it will make you cast 'Utito Tempo' if your strenthen is going out in less
than 1.5 seconds

・ $invisible, will return if you are invisible or not


example: if [$invisible == 0] say 'Utana Vid', it will make you cast 'Utana Vid' if you are not invisible

・ $dmgs, will return the amount of damage you recieved last second
example: if [$dmgs >= 500] set $spell 'Exura Vita', it will make set the variable $spell to 'Exura Vita' if you recieved more than
500 of damage last second

・ $enemycount, will return the amount of enemies on your screen


example: if [$enemycount >= 1] xlog, it will make you force logout if an enemy appears on your screen

・ $friendcount, will return the amount of friends on your screen


example: if [$friendcount >= 1] say 'Hi friend', it will make you say 'Hi Friend' if a friend appears on your screen

・ $fishspots, will return the amount of fishable spots on your screen


example: if [$fishspots <= 5] gotolabel 'ContinueFishing', it will make you go to label 'ContinueFishing' if there are less than 5
fishable spots in your screen

・ $waypointson, will return if the follow waypoints is enabled or not


example: if [$waypointson == 1] setfollowwaypoints off, it will disable the follow waypoints if it was on

・ $targetingon, will return if the targeting is enabled or not


example: if [$targetingson == 1] settargeting off, it will disable the targeting if it was on

・ $autocomboon, will return if the auto combo is enabled or not


example: if [$autocomboon == 1] setautocombo off, it will disable the auto combo if it was on

・ $caveboton will return 1 if the follow waypoints is on, 0 if not (same as


$waypointson)
example: ifnot $caveboton setcavebot on, it will enable the cavebot if it wasn't enabled

・ $ping, it will return your roundtrip time to the server in milliseconds


example: if [$ping >= 500] xlog, it will make you logout if your ping is higher than 500

・ $idlerecvtime, it will return the amount of time elapsed since the server
has sent any information in milliseconds
example: if [$idlerecvtime >= 5000] playsound freezed.wav, it will play the sound 'freezed.wav' if you freezed for more than 5
seconds

・ $standtime, it will return the amount of time you have been standing in the
same place in milliseconds
example: if [$standtime >= 45000] playsound playeronscreen.wav, it will play the sound 'playeronscreen.wav' if you are in the
same SQM for more than 45 seconds

・ $systime, it will return a formatted string displaying the current time on


your system/computer in the format: hh:mm:ss
example: statusmessage '$systime', it will display a status message with your current time
・ $sysdate, it will return a formatted string displaying the current date on
your computer in the format: dayname, monthname dd yyyy
example: statusmessage '$sysdate', it will display a status message with your current date

・ $battlesign, it will return 1 if you are battle signed, and 0 if you are not
example: ifnot $battlesign logout, it will make you logout if you aren't PZ locked.

・ $redbattlesign, it will return 1 if you are red battle signed, and 0 if you are
not
example: ifnot $redbattlesign logout, it will make you logout if you aren't PvP PZ locked.

・ $inpz, it will return 1 if you are inside a protection zone, and 0 if you are not
example: if $inpz xlog, it will make you logout if you are inside a pz zone.

・ $rand.x.y will return a random number from x to y, or just $rand.x for one
from 0 to x
example: auto 100 tradesay 'sell knight armor' | wait [($rand.200.350)*1000], it will say in the Trade Channel: "sell knight
armor", and after a random time from 200 to 350 seconds it will say it again

・ $sstime will return the time to serversave in seconds (only if a serversave


message appears)
example: auto 1000 setcaption 'Time to Server Save: $sstime', it will add to your caption the time left for the serversave.

・ $winitemcount.x same as $itemcount.x, but returns only the amount of


visible items of id x that are in windows (open containers/backpacks), excluding
the ones equipped on you (excluding the ones in hand, belt, etc).
example: if [$winitemcount.1234 > 20] equiprhand 1234 100, it will equip you with the item '1234' if there are more than 20
'1234' in your backpack

・ $fired will return 1 if the preceding command has succesfully issued an


attack or used a rune on someone.
example: auto 100 sd target | if $fired wait 900, it will add a delay of 900 miliseconds only if the the sd target was succesfully
issued. Note that the $fired DOES NOT tell you that a sd was actually thrown, but that a shoot sd command was sent because
target was shootable.

・ $synctime will return the time in milliseconds left for a sync shot if one is in
progress.
example: ifnot $synctime sd target, it will shoot a sudden death rune on your target only if a sync shot order isn't in progress

・ $navion will return 1 if you are connected to the navigation and 0 if not.
example: auto 100 if $navion listas 'Connected to the navigation', if you are connected to the navigation it will show on the
hotkeys activated list the message 'Connected to the navigation'.

・ $exectime will return the time in miliseconds that the bot took to execute
all the hotkeys + some other important bot functionality. This will increase as
you are running more hotkeys. This is updated 10 times per second, and
shouldn't become over 100ms.
example: auto 100 setcaption 'Exec Time: $exectime', it will show on your Tibia window the time needed to execute the bot
functions.

・ $topitem.posx.posy.posz will return the ID of the top item on a tile


example: auto 100 if [$topitem.32222.34444.7 == 3031] moveitemonground 32222 34444 7 32223 34445 7, if the top item of
the tile 32222 34444 7 is a item of ID 3031, it will be moved from 32222 34444 7 to 32223 34445 7.

・ $istileitem.posx.posy.posz.itemid it will return 1 there is a item of X item


ID
example: auto 100 if [$istileitem.32222.34444.7.3031] playsound 'monster.wav', if an item of ID 3031 is at the tile 32222
34444 7 it will play the sound 'monster.wav'.
・ $lastdmg it will return the last damage number you recieved
example: auto 100 if [$lastdmg > 500] savescreen, it will save a screenshot if the last damage you recieved was higher than
500.

・ $lastdmgtype it will return the type of the last damage you recieved
example: auto 100 if [$lastdmgtype == 30 && $lastdmg > 50 && $poisoned] {say 'Exana Pox' | wait 900}, it will make you cast
'Exana Pox' if the last damage you recieved was of poison type, and you are poisoned and it was higher than 50.

・ $mcount."conditions" it will return the amount of monster satisfying


certain conditions.
example: auto 100 if [$mcount."$m.name == 'Dragon Lord' && $m.isshootable" >= 2] equipring 3051, it will make you equip
an energy ring if there are more than 2 dragon lords shootable on your screen.

・ $pcount."conditions" it will return the amount of players satisfying certain


conditions.
example: auto 100 listas 'There are [$pcount."$p.isenemy && $p.ismage && $p.level > 80" enemies mages 80+ on your
screen', it will show the text 'There are X enemies mages 80+ on your screen'.

・ $screencount.'name' it will return how many of creatures with name


'name' on the same level as you and on the visible/shootable portion of the
screen.
example: auto 100 listas '[$screencount."Demon"] demons are found on your screen.', it will show the text 'X demons are found
on your screen.'

・ $lastdmgername it will the name of the creature that has last attacked
you. This is the name taken from the message "You lose xxx hitpoints due to an
attack by mmmm"
example: auto 100 if [$screencount."Stalker" == 0 && $lastdmgtime < 300 && $lastdmgername == "Stalker"] {useoncreature
3191 self | wait 300}, it will shoot a great fireball rune on yourself if you was damaged by a stalker in the last 300 miliseconds
and there are no stalkers visible on your screen.

・ $lastdmgtime it will return the time since you were last attacked by a
creature in miliseconds.
example: auto 100 if [$screencount."Warlock" == 0 && $lastdmgtime < 300 && $lastdmgername == "Warlock"]
{useoncreature 3175 self | wait 300}, it will shoot a stoneshower rune on yourself if you was damaged by a warlock in the last
300 miliseconds and there are no warlocks visible on your screen.

・ $ctrl it will return if you're holding the CTRL Key


example: if [$ctrl] {say 'Exori Vis' | wait 300} | else {say 'Exevo Vis Hur' | wait 300}, it will cast energy strike if you're holding
the CTRL Key and will cast energy wave if you're not holding the CTRL Key.

・ $shift it will return if you're holding the SHIFT Key


example: if [$shift] {makerune 'Adori Frigo' [$maxmp-20] | wait 300} | else {makerune 'Adura Vita' [$maxmp-20] | wait 300},
it will make an icicle rune if you're holding the SHIFT Key and will make an ultimate healing rune if you're not holding the SHIFT
Key.

・ $alt it will return if you're holding the ALT Key


example: if [$alt] crosshair 3003 | else crosshair 5710, it will make a rope crosshair appear if you're holding the ALT Key and
will make a light shovel crosshair appear if you're not holding the ALT Key.

・ $key.id it will return if you're holding some key. More information about the keys on the end
of this article
example: if [$key.68] countitems 3031 | else statusmessage "You must hold the 'D' Key.", it will count the gold coins if you're
holding the key of ID 68 (D Key) and will send the statusmessage "You must hold the 'D' Key" if you're not holding the key of
ID 68 (D Key).

・ $skill.type it will return your current skill.


example: auto 100 if [$skill.'sword' >= 90] {playsound 'advancedskill.wav' | flash}, it will play the sound 'advancedskill.wav' and
flash if your sword fighting is higher than 90.
・ $skillpc.type it will return your current skill percent.
example: auto 100 if [$skillpc.'mlevel' == 1] {playsound 'advancedskill.wav' | flash}, it will play the sound 'advancedskill.wav'
and flash if your magic level is about to advance.
・ $skilltime.type it will return the estimated time left in seconds to advance
a skill.
example: auto 100 if [$skilltime.'fishing' <= 60] {playsound 'advancedskill.wav' | flash}, it will play the sound
'advancedskill.wav' and flash if 60 seconds are left to advance your fishing.

・ $skill.type it will return your current skill.


example: auto 100 if [$skill.'sword' >= 90] {playsound 'advancedskill.wav' | flash}, it will play the sound 'advancedskill.wav' and
flash if your sword fighting is higher than 90.
・ $skillpc.type it will return your current skill percent.
example: auto 100 if [$skillpc.'mlevel' == 1] {playsound 'advancedskill.wav' | flash}, it will play the sound 'advancedskill.wav'
and flash if your magic level is about to advance.
・ $skilltime.type it will return the estimated time left in seconds to advance
a skill.
example: auto 100 if [$skilltime.'fishing' <= 60] {playsound 'advancedskill.wav' | flash}, it will play the sound
'advancedskill.wav' and flash if 60 seconds are left to advance your fishing.

Type can be:


fist -> will check for your fist fighting
club -> will check for your club fighting
sword -> will check for your sword fighting
axe -> will check for your axe fighting
distance -> will check for your distance fighting
shielding -> will check for your shielding
fishing -> will check for your fishing
mlevel -> will check for your magic level

Those variables below will return if someone is in a leader or an


enemy or a subenemy or a friend or a subfriend
・ $isleader.'name', it will check if the player 'name' is on the leaders list on
aimbot
・ $isfriend.'name', it will check if the player 'name is on the friends list on
lists
・ $issubfriend.'name', it will check if the player 'name is on the subfriends
list on lists
・ $isenemy.'name', it will check if the player 'name is on the enemies list on
lists
・ $issubenemy.'name', it will check if the player 'name is on the subenemies
list on lists
example: auto 100 foreach 'newmessages' $i if [$isfriend.'$i.sender' == 0 && $i.ispvt] {playsound 'privatemessage.wav' | flash
| break}, it will play the sound 'privatemessage.wav' if a player who is not on your friends list sends you a private message.

You can use your personal variable, using foreach command (allcreatures,
allplayers, allmonsters, floorcreatures, floorplayers, floormonsters, screencreatures, screenplayers,
screenmonsters, shootablecreatures, shootableplayers, shootablemonsters). Or the internal
variables listed below.
・ $self.property, it will check something about you
・ $target.property, it will check something about your target
・ $followed.property, it will check something of your current followed player
・ $attacked.property, it will check something of the creature that has
currently red box around it
・ $attacker.property, it will check something of the last creature that has
attacked you
・ $pk.property, it will check something of the last player that attacked you
that the bot has chosen
・ $lastdmger.property, it will check something of the last creature that
made a damage on you
・ $pattacker.property, it will check something of the last player that has
attacked you (same as $pk.property)
・ $mttacker.property, it will check something of the last monster that has
has attacked you
・ $enemy.property, it will check something of the best enemy that the bot
has chosen
・ $friend.property, it will check something of the best friend that the bot has
chosen
・ $subenemy.property, it will check something of the best sub-enemy that
the bot has chosen
・ $subfriend.property, it will check something of the best sub-friend that
the bot has chosen
・ $anyenemy.property, it will check something of the best enemy that the
bot has chosen, if none than the best sub-enemy
・ $anyfriend.property, it will check something of the best enemy that the
bot has chosen, if none than the best sub-friend
・ $coretarget.property, it will check something of the best valid target that
the core aimbot subsystem of the bot has chosen
・ $triggertarget.property, it will check something of the best valid target
that the trigger aimbot subsystem has chosen (only if shot commands have
been issued and a target is valid)
・ $autoaimtarget.property, it will check something of the best target that
both aimbot subsystems combined have chosen. This is simply the triggertarget
if valid, otherwise it is the coretarget.
Or you can select whoever you want setting someone trought the
variables below
・ $creature.name, it will check for a creature on your screen that has the
name 'name', and then you can hold the informations in another variable, for
example: auto 100 set $j $creature.'Bubble'
・ $mostexposed.'targetgroup', it will check for every enemy on your
screen, and then choose the one that more friends of you can shoot it, the
target group can be: sorcerer/druid/knight/paladin/mage/nonmage. And then
you hold the informations in another variable, for example: auto 100 set $i
$mostexposed.'mage'
・ $mostshot.'targetgroup', it will check for the creature that has recieved
most sudden death rune shots in the last two seconds, the target group can be:
enemy/subenemy/friend/subfriend, if you want to specify a vocation also, you
can append a space and one of the following:
sorcerer/druid/knight/paladin/mage/nonmage. And then you hold the
informations in another variable, for example: auto 100 set $i
$mostshot.'enemy mage'
These creature variables have some properties
name -> will return the name of someone, for example: $target.name will
return your target's name

id -> will return the ID of someone, for example: $enemy.id will return your
best enemy's ID

posx -> will return the posx of someone, for example: $friend.posx will return
your best friend's posx

posy -> will return the posy of someone, for example: $friend.posy will return
your best friend's posy

posz -> will return the posz of someone, for example: $friend.posz will return
your best friend's posz

dir -> will return the direction that someone is facing (check the end of this
thread for more information), for example: $self.dir will return your own
direction number

isonnavi -> will return 1 if someone is connected to the navigation, and 0 if not,
for example: $friend.isonnavi will return 1 if the best friend chosen by the bot is
connected to the navigation server, and 0 if not

outfit -> will return the outfit number of someone, for example:
$subenemy.outfit will return your best sub-enemy's outfit number

hppc -> will return the percentage of HP of someone, for example:


$target.hppc will return your target's HP percent

speed -> will return the speed of someone, for example: $anyenemy.speed will
return your best enemy (or best sub-enemy)'s speed

skull -> will return the skull type of someone (check the end of this thread for
more information), for example: $self.skull will return your own skull type

party -> will return the party icon of someone is in a party (check the end of
this thread for more information), and 0 if not on party, for example:
$self.party will return 4 if you are in the leader of a party

warbanner -> will return the war banner of someone (check the end of this
thread for more information), and 0 if not on a guild war, for example:
$target.warbanner will return 2 if your target is a guild enemy

isenemy -> will return 1 if someone is an enemy, and 0 if not, for example:
$target.isenemy will return 1 if your current target is an enemy, and 0 if not
isfriend -> will return 1 if someone is a friend, and 0 if not, for example:
$target.isfriend will return 1 if your current target is a friend, and 0 if not

issubenemy -> will return 1 if someone is a sub-enemy, and 0 if not, for


example: $target.issubenemy will return 1 if your current target is a sub-
enemy, and 0 if not

issubfriend -> will return 1 if someone is a sub-friend, and 0 if not, for


example: $target.issubfriend will return 1 if your current target is a sub-friend,
and 0 if not

isleader -> will return 1 if someone is a combo leader listed in Aimbot dialog,
and 0 if not, for example: $target.isleader will return 1 if your current target is
a leader, and 0 if not

distx -> will return how many sqms to the west or east someone is from you,
$target.distx will return how many sqms to the west or east your target is from
you

disty -> will return how many sqms to the north or south someone is from you,
$target.disty will return how many sqms to the north or south your target is
from you

distance -> will return the highest number of .distx and .disty, $target.distance
will return how many sqms a target is from you

ismonster -> will return 1 if someone is a monster or a npc, 0 if not,


$followed.ismonster will return 1 if your current followed is a monster, 0 if not

isnpc -> will return 1 if someone is a npc, 0 if not, $followed.isnpc will return 1
if your current followed is a npc, 0 if not

isplayer -> will return 1 if someone is a player, 0 if not, $followed.isplayer will


return 1 if your current followed is a player, 0 if not

isonscreen -> will return 1 if someone is on the same floor as you and on the
visible portion of the screen, 0 if not, $followed.ismonster will return 1 if your
current followed is on your screen, 0 if not

isshootable -> will return 1 if nothing obstructs a projectile trajectory between


you and him, 0 if not, $followed.ismonster will return 1 if your current followed
is shootable, 0 if not

isparalyzed -> will return 1 if someone is paralyzed, 0 if not, $target.isparalyzed


will return 1 if your target is paralyzed, 0 if not
color1 -> will return the head color's number of someone, $self.color1 will
return yours head color's number, 0 if not

color2 -> will return the primary color's number of someone, $self.color2 will
return yours primary color's number, 0 if not

color3 -> will return the secondary color's number of someone, $self.color3 will
return yours secondary color's number, 0 if not

color4 -> will return the detail color's number of someone, $self.color4 will
return yours detail color's number, 0 if not
canshoot.'name' -> will return 1 if someone can shoot the creature 'name',
$friend.canshoot.'Bubble' will return 1 if your best friend can shoot 'Bubble', 0 if
not

exposedcount -> will return how many friends/yourself can shoot someone,
$coretarget.exposedcount will return how many friends + you can shoot the
coretarget

shotcount -> will return how many sudden death runes someone has recieved
on the last 2 seconds, $self.shotcount will return how many sudden death runes
you have recieved on the last two seconds

Also, there will be some exclusive variables if the bot managed to get
a look at the player, it will have the 'haslookinfo' property set. You
should verify that it's set before using the below fields:
haslookinfo -> will return 1 if player has the below properties available: if
[$target.haslookinfo && $target.hp < 400] sd $target.id (since $target.hp is
only available if $target.haslookinfo is set. Otherwise, $target.hp would return 0
and the alone condition $target.hp < 400 would be true!)

guild -> will return someone's guild, for example: $target.guild will return your
target's guild

level -> will return someone's level, for example: $enemy.level will return the
best enemy's level

voc -> will return someone's vocation (short), for example: $pattacker.voc will
return the current player attacking you's vocation (like NV, D, S, P, K, ED, MS,
RP, EK)
vocation -> will return someone's vocation (long), for example:
$attacked.vocation will return the attacked player's vocation (like No Vocation,
Druid, Sorcerer, Paladin, Knight, Elder Druid, Master Sorcerer, Royal Paladin,
Elite Knight)

isknight -> will return 1 if someone is a knight, and 0 if not, for example:
$target.isknight will return 1 if your current target is a knight, and 0 if not
ispaladin -> will return 1 if someone is a paladin, and 0 if not, for example:
$target.ispaladin will return 1 if your current target is a paladin, and 0 if not

issorcerer -> will return 1 if someone is a sorcerer, and 0 if not, for example:
$target.issorcerer will return 1 if your current target is a sorcerer, and 0 if not

isdruid -> will return 1 if someone is a druid, and 0 if not, for example:
$target.isdruid will return 1 if your current target is a druid, and 0 if not

ismage -> will return 1 if someone is a druid or a sorcerer, and 0 if not, for
example: $followed.ismage will return 1 if the current followed player is a
mage, 0 if not

maxhp -> will return someone's max hp, for example: $friend.maxhp will return
the best friend's max hp

hp -> will return someone's current hp, for example: $friend.hp will return the
best friend's current hp
maxmp -> will return someone's max mp, for example: $subenemy.maxmp will
return the best sub-enemy's maxmp

mp -> will return someone's max hp, for example: $subenemy.mp will return
the best sub-enemy's current mp

attackedme -> will return 1 if someone attacked you, and 0 if not, for example:
$friend.attackedme will return 1 if the best friend attacked you, and 0 if not

• $curmsg.property, it will check something about each message you


are recieving.
• $lastmsg.property, it will check something about the last message you
recieved.
• $lastnavmsg.property, it will check something about the last
navigation message you recieved.
You can also use foreach 'newmessages' $varname action.
These variables have some properties, I will use a message as
example 16:16 Lucas Terra [2]: hey, u there?, that was sent in Default.
sender -> will return the name of the message sender, in the example:
$curmsg.sender will return 'Lucas Terra'
level -> will return the level of message sender, in the example:
$curmsg.level will return '2'
content -> will return what was wrote in the message, in the example:
$curmsg.content will return 'hey, u there?'
formatted -> will return the message formatted (the original message
without time), in the example: $curmsg.formatted will return 'Lucas
Terra [2]: hey, u there?'
channel -> will return in what channel the message was sent, in the
example: $curmsg.channel will return 'Default'
color -> will return the message's color, in the example: $curmsg.color
will return 16838639
isdefault -> will return 1 if the message was sent in default, and 0 if not,
in the example: $curmsg.isdefault will return '1'
isyell -> will return 1 if the message was a yell, and 0 if not, in the
example: $curmsg.isyell will return '0'
iswhisper -> will return 1 if the message was a whisper, and 0 if not, in
the example: $curmsg.iswhisper will return '0'
isprivate -> will return 1 if the message was a private, and 0 if not, in
the example: $curmsg.isprivate will return '0'
isbroadcast -> will return 1 if the message was a broadcast (message in
green that appears in the center of screen), and 0 if not, in the example:
$curmsg.isbroadcast will return '0'
isredtext -> will return 1 if the message was a red text (like a server
save message), and 0 if not, in the example: $curmsg.isredtext will
return '0'
isorangetext -> will return 1 if the message was a orange text (like a
tutor message in help), and 0 if not, in the example: $curmsg.isredtext
will return '0'
isnpc -> will return 1 if the message was a sent in NPC channel, and 0 if
not, in the example: $curmsg.isnpc will return '0'
ischannel -> will return 1 if the message was sent in help or trade or
game-chat or private-channels, and 0 if not, in the example:
$curmsg.ischannel will return '0'
isbotlook -> will return 1 if the message was a bot look (when the bot
looks at someone it isn't displayed), and 0 if not, in the example:
$curmsg.isbotlook will return '0'
isguild -> will return 1 if the message was sent in guild-chat, and 0 if
not, in the example: $curmsg.isguild will return '0'
isaction -> will return 1 if the message was an action (like the 'Ahhh...'
of mana potions), and 0 if not, in the example: $curmsg.isaction will
return '0'
isstatus -> will return 1 if the message was a status message (like the
'Sorry, not possible'), and 0 if not, in the example: $curmsg.isstatus will
return '0'
isinfo -> will return 1 if the message was a green text (like a look at
players), and 0 if not, in the example: $curmsg.isinfo will return '0'
isgame -> will return 1 if the message was sent in game-chat, and 0 if
not, in the example: $curmsg.isgame will return '0'
isrl -> will return 1 if the message was sent in RL-chat, and 0 if not, in
the example: $curmsg.isrl will return '0'
istrade -> will return 1 if the message was sent in trade channel, and 0 if
not, in the example: $curmsg.istrade will return '0'
ishelp -> will return 1 if the message was sent in help channel, and 0 if
not, in the example: $curmsg.ishelp will return '0'
isnavi -> will return 1 if the message was sent in the navigation server,
and 0 if not, in the example: $curmsg.isnavi will return '0'
To understand better the variables, test each one by yourself changing some
values and so.

Signals and Operators


+ -> addition
example: if [($itemcount.'mana potions'+$itemcount.'strong mana potions') < 50] gotolabel buymfs, it will go to the label
'buymfs' if the ammount of mana potions + strong mana potions is below 50
- -> subtraction
example: if [($maxhp-$hp) >= 300] say 'Exura Vita', it will cast 'Exura Vita' if your maxhp-hp is higher than 300
/ -> division
example: if [$poisondmg/5 > 5] say 'Exana Pox', it will cast 'Exana Pox' if the poison damage/5 is higher than 5
* -> multiplication
example: if [$mp*5 < $maxmp] mana self, it will use a mana potion on yourself if your mana is below 1/5 of your max mana
% -> modulus, remainder of a division
example: if [$timems%4000 < 2000] say 'Exori Flam', it will cast 'exori flam' if the modulus of timems/4000 is below 2000
> -> higher
example: if [$count > 5] gmana self, it will use a great mana potion if the count of last counted item is higher than 5
< -> lower
example: if [$count < 5] gotolabel buymfs, it will go to the label 'buymfs' if the count of last counted item is below 5
>= -> higher or equal
example: if [$maxhp-$hp >= 700] mana self, it will use a mana potion on yourself if your maxhp-hp is higher than 700
<= -> lower or equal
example: if [$hp <= 70*$maxhp/100] uh self, it will use an ultimate healing rune on yourself if your HP is under 70%
&& -> and
example: if [$hp <= 70*$maxhp/100 && $mp <= 60*$maxmp/100] mana self, it will use a mana potion on yourself if your HP
is below 70% and your mana is below 60%
|| -> or
example: if [$hp <= 70*$maxhp/100 || $mp <= 30*$maxmp/100] gsmana self, it will use a great spirit potion on yourself if
your HP is below 70% or if your mana is below 30%
== -> equal
example: if [$connected == 0] reconnect, it will reconnect if you are disconnected
!= -> different, not equal
example: if [$manashielded != 1] say 'Utamo Vita', it will use cast 'Utamo Vita' if you are not using mana shield
? -> stringpos, returns the position of string2 inside of string1, or 0 if string2 is
not present there: [string1 ? string2]
example: if [$curmsg.content ? 'soft'] playsound tradealarm.wav, it will play the sound tradealarm.wav, if you recieve a
message contaning the word soft, like 'sell soft boots', 'buy soft boots and boots of haste, (because it will return a non-zero
position and the if will be evaluated as true)'

Equalities
If an equality is equal to 0, means it's not true, if it's equal to 1, means it's true
example: if [$connected == 0] reconnect, it will make you reconnect if you are not connected

Keyboard Keys're IDs:


Check out this website:
http://www.tronan.com/macromachine/scripthelp/VK.htm
Choose the key you want to use, for example: 'Y key'. Go to the website, do
CTRL+F and type 'Y key', it will find the decimal value '89', then just use it on
your hotkey. For example: if [$key.89] say 'Yeah!', it will say 'Yeah!' if you're
holding the 'Y key'.
This is useful for making hotkeys like: CTRL+SHIFT+END do Exori San,
CTRL+END do Exori Con, END do SD Target. Make a hotkey on the END Key:
if [$target.isshootable] {if [$ctrl && $shift] {if [$mp >= 20 &&
$attacked.distance <= 4 && $attacked] {say 'Exori San' | wait 300} | end} | if
[$ctrl] {if [$mp >= 25 && $attacked.distance <= 7 && $attacked] {say 'Exori
Con' | wait 300} | end} | sd target | if $fired wait 300}

Skull Types:
No Skull -> 0
Yellow Skull -> 1
Green Skull -> 2
White Skull -> 3
Red Skull -> 4
Black Skull -> 5

Party Types:
No Party -> 0
Inviting (Leader Yellow) -> 1
Inviting (Member Blue) -> 2
on Party (Member Blue) -> 3
on Party (Leader Yellow) -> 4
Exp Sharing, working (Member Blue) -> 5
Exp Sharing, working (Leader Yellow) -> 6
Exp Sharing, on standby (Member Blue) -> 7
Exp Sharing, on standby (Leader Yellow) -> 8
Exp Sharing, not working (Member Blue) -> 9
Exp Sharing, not working (Leader Yellow) -> 10

War Banner Types:


No War -> 0
Green Banner (Friend) -> 1
Red Banner (Enemy) -> 2
Blue Banner (In a War that you're not fighting) -> 3

Direction Types:
North -> 0
East -> 1
South -> 2
West -> 3

>> Créditos: Lucas Terra <<

You might also like