<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://graalonline.net/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Fowlplay4</id>
	<title>Graal Bible - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://graalonline.net/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Fowlplay4"/>
	<link rel="alternate" type="text/html" href="https://graalonline.net/Special:Contributions/Fowlplay4"/>
	<updated>2026-04-10T02:14:02Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.39.4</generator>
	<entry>
		<id>https://graalonline.net/index.php?title=Server_options&amp;diff=19475</id>
		<title>Server options</title>
		<link rel="alternate" type="text/html" href="https://graalonline.net/index.php?title=Server_options&amp;diff=19475"/>
		<updated>2012-04-22T01:21:44Z</updated>

		<summary type="html">&lt;p&gt;Fowlplay4: /* Showimg/Ani Filter */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Administration]]&lt;br /&gt;
The '''server options''' are a collection of key=value configuration options that allow you to customize the non-[[GScript|script]]able behaviour of an individual [[Playerworld]].&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
&lt;br /&gt;
Options are usually set only by high [[Playerworld]] staff, preferably only the [[Playerworld]] owner, as they are very powerful and can be abused easily.&lt;br /&gt;
&lt;br /&gt;
When you omit an option, its value will not be changed if the option has been used before. Therefore, it is more secure to change only the value and not whole option, should you need to change something.&lt;br /&gt;
&lt;br /&gt;
Lines beginning with # are not parsed, and can be used for comments.&lt;br /&gt;
&lt;br /&gt;
== Known Server Options ==&lt;br /&gt;
&lt;br /&gt;
Please add new options if you discover them.&lt;br /&gt;
&lt;br /&gt;
=== Start location ===&lt;br /&gt;
  startlevel=level name&lt;br /&gt;
  startx=number&lt;br /&gt;
  starty=number&lt;br /&gt;
&lt;br /&gt;
This sets the originating location for all [[Player]]s which do not have location statistics of their own saved [[Local|locally]].&lt;br /&gt;
&lt;br /&gt;
=== Unstick me location ===&lt;br /&gt;
  unstickmelevel=level name&lt;br /&gt;
  unstickmex=number&lt;br /&gt;
  unstickmey=number&lt;br /&gt;
&lt;br /&gt;
These define the position that a [[Player]] is warped to after using the [[Unstick me]] command.&lt;br /&gt;
&lt;br /&gt;
=== Unstick Time ===&lt;br /&gt;
  unstickmetime=number&lt;br /&gt;
&lt;br /&gt;
This option sets the amount of time a player has to be idle before they can use the unstick me command.&lt;br /&gt;
&lt;br /&gt;
=== Protected Weapons ===&lt;br /&gt;
  protectedweapons=list of comma seperated weapon names&lt;br /&gt;
&lt;br /&gt;
[[NPC weapon]]s that cannot be deleted by the [[Player]]. This differs from weapons with asterisk prefixed name which cannot be deleted with the Del key, but still can be deleted on the [[Clientside]] using the [[Old GScript:destroy|destroy]] command. `Protected' weapons can (unless *ified) be deleted with Del, but the NPC server will not remove them from the player's weapon list and thus the [[Serverside]] part will remain and the player obtains them again on the next connect.&lt;br /&gt;
&lt;br /&gt;
=== Jail Levels ===&lt;br /&gt;
  jaillevels=level names comma separated&lt;br /&gt;
&lt;br /&gt;
Non-[[Playerworld staff|staff]] players in these levels will not be able to leave them. A [[Serverside]] [[Old GScript:setlevel2|setlevel2]] or warping with [[RC]] is neccessary. Also, they can send [[PM]]s only to RC clients and not regular [[Client]]s.&lt;br /&gt;
, ,&lt;br /&gt;
&lt;br /&gt;
=== Explosion Restriction ===&lt;br /&gt;
  noexplosions=true/false&lt;br /&gt;
&lt;br /&gt;
Disables the result of [[Old GScript:putexplosion|putexplosion]], and `explosive' [[NPC weapons]].&lt;br /&gt;
&lt;br /&gt;
=== Statistic Restriction ===&lt;br /&gt;
  setbodyallowed=true/false&lt;br /&gt;
  setheadallowed=true/false&lt;br /&gt;
  setbomyallowed=true/false&lt;br /&gt;
  setswordallowed=true/false&lt;br /&gt;
  setshieldallowed=true/false&lt;br /&gt;
&lt;br /&gt;
Whether the chat commands to change the player's [[Appearance commands|appearance]] are enabled. Defaults to true.&lt;br /&gt;
&lt;br /&gt;
=== Gralat Loss Options ===&lt;br /&gt;
  mindeathgralats=number&lt;br /&gt;
  maxdeathgralats=number&lt;br /&gt;
&lt;br /&gt;
Defines the amount of [[Gralat]]s that the player drops on death.&lt;br /&gt;
&lt;br /&gt;
=== Staff Gralat Restriction ===&lt;br /&gt;
  normaladminscanchangegralats=true/false&lt;br /&gt;
&lt;br /&gt;
Whether normal [[RC]]s can change the gralat count of a player. `Normal' used to be defined as `below [[Adminlevel]] 4', but nowadays is probably regulated by certain high-level [[Admin right]]s.&lt;br /&gt;
&lt;br /&gt;
=== Local 'Staff Guilds' ===&lt;br /&gt;
  staffguilds=comma seperated list of guild names&lt;br /&gt;
&lt;br /&gt;
Matches to these [[Guild]] names appear in the `Staff' section of the playerlist.&lt;br /&gt;
&lt;br /&gt;
=== `Bush' Items ===&lt;br /&gt;
  bushitems=true/false&lt;br /&gt;
&lt;br /&gt;
Selects whether [[Bush]]es contain [[Item]]s. May not work on a [[GMap]].&lt;br /&gt;
&lt;br /&gt;
=== `Baddy' Items ===&lt;br /&gt;
  baddyitems=true/false&lt;br /&gt;
&lt;br /&gt;
Selects whether [[Baddy|baddies]] drop [[Item]]s once killed.&lt;br /&gt;
&lt;br /&gt;
=== `Healing' Swords ===&lt;br /&gt;
  healswords=true/false&lt;br /&gt;
&lt;br /&gt;
Selects whether is possible to have a negative [[Sword]] power and thus add [[Heart]]s to those hit by the sword.&lt;br /&gt;
&lt;br /&gt;
=== Non-script timeouts ===&lt;br /&gt;
  respawntime=number&lt;br /&gt;
  horselifetime=number&lt;br /&gt;
  baddyrespawntime=number&lt;br /&gt;
&lt;br /&gt;
Timeout in seconds for respawn times for [[Bush]]es, [[Horse]]s and [[Baddy|Baddies]]&lt;br /&gt;
&lt;br /&gt;
=== Server Scripting Flags ===&lt;br /&gt;
  dontaddserverflags=true/false&lt;br /&gt;
&lt;br /&gt;
Selects whether [[GScript|scripts]] can add new [[Server flag]]s or only modify existing ones.&lt;br /&gt;
&lt;br /&gt;
=== Server Maps ===&lt;br /&gt;
  bigmap=maptext,mapimage,defaultx,defaulty&lt;br /&gt;
  minimap=maptext,mapimage,defaultx,defaulty&lt;br /&gt;
&lt;br /&gt;
Default serverwide [[Map]]s. Syntax resembles [[Old GScript:setmap|setmap]] and [[Old GScript:setminimap|setminimap]] [[GScript]] commands.&lt;br /&gt;
&lt;br /&gt;
=== Warping (All Players) ===&lt;br /&gt;
  warptoforall=true/false&lt;br /&gt;
  warptoforlowadmins=true/false&lt;br /&gt;
&lt;br /&gt;
Whether all [[Player]]s can use the [[Warpto]] command, and whether [[Global]] [[Admin level]] 1 allows warpto.&lt;br /&gt;
&lt;br /&gt;
=== Warping Activation ===&lt;br /&gt;
  warpto=false/true&lt;br /&gt;
  ignorewarpto=true/false&lt;br /&gt;
&lt;br /&gt;
Allows or disallows the default [[Warpto]] command for all [[staff]], including [[Global]]s. This is normally enabled.&lt;br /&gt;
&lt;br /&gt;
Note that warpto=false will show a &amp;quot;(warping is disabled)&amp;quot; error message to [[Player]], whereas ignorewarpto=true will treat [[Warpto]] commands as just normal chat text and display no error message. &lt;br /&gt;
&lt;br /&gt;
The latter is good for replacing the default [[Warpto]] command with a scripted version.&lt;br /&gt;
&lt;br /&gt;
=== Ghost Mode ===&lt;br /&gt;
  ghostmodeenabled=true/false&lt;br /&gt;
  ghostmodefornotstaff=true/false&lt;br /&gt;
&lt;br /&gt;
Selects whether all [[Player]]s appear as [[Ghost]], or only non-[[Playerworld staff|staff]] players, or nobody.&lt;br /&gt;
&lt;br /&gt;
=== Playerlist Icons ===&lt;br /&gt;
  playerlisticons=comma seperated list of statusses&lt;br /&gt;
&lt;br /&gt;
Possible status list, [[Player]]s can select one of them in the [[Players list]]. There must be a [[Downloadable]] file plisticonNAME.png available in a folder specified as `file' in [[Folder configuration]].&lt;br /&gt;
&lt;br /&gt;
=== Profile Variables ===&lt;br /&gt;
  profilevars=comma seperated list of profile variables&lt;br /&gt;
&lt;br /&gt;
Selects what is to be displayed in a [[Player]]'s profile. The default variables are: playerkills, playerdeaths, playerfullhearts, playerrating, playerap, playerrupees, playerswordpower, canspin, largely modelled after [[Old GScript]]. Custom string variables can be added in the format `name=stringname'. If name is not specified, stringname is used.&lt;br /&gt;
&lt;br /&gt;
=== Trial Account Limits ===&lt;br /&gt;
  limitfreeplayers2=true/false&lt;br /&gt;
&lt;br /&gt;
Selects whether to disable adding of [[Bomb]]s, [[Arrow]]s, and [[Explosion]]s for [[Trial account]]s.&lt;br /&gt;
&lt;br /&gt;
=== AP System Activation ===&lt;br /&gt;
  apsystem=true/false&lt;br /&gt;
&lt;br /&gt;
Whether the [[AP]] system is enabled. If yes, there are some restrictions for [[Player]]s with low AP regarding hearts.&lt;br /&gt;
&lt;br /&gt;
=== Starting AP ===&lt;br /&gt;
  startap=number&lt;br /&gt;
&lt;br /&gt;
How much [[AP]] [[Player]]s are given upon first login to this [[Playerworld]].&lt;br /&gt;
&lt;br /&gt;
=== Global Guilds Activation ===&lt;br /&gt;
  globalguilds=true/false&lt;br /&gt;
&lt;br /&gt;
Allows or disallows [[Guild]] from the [[Global]] database. This is normally enabled.&lt;br /&gt;
&lt;br /&gt;
  allowedglobalguilds=guild,guild,guild&lt;br /&gt;
&lt;br /&gt;
This option limits what guilds can be used from the [[Global Guilds]] database. (Note: globalguilds= needs to be set to false so other guilds besides the allowed can not be used.&lt;br /&gt;
&lt;br /&gt;
=== AP Timeouts ===&lt;br /&gt;
  aptime0=number&lt;br /&gt;
  aptime1=number&lt;br /&gt;
  aptime2=number&lt;br /&gt;
  aptime3=number&lt;br /&gt;
  aptime4=number&lt;br /&gt;
&lt;br /&gt;
Time (in seconds) it takes to recharge one point of [[AP]] when the AP is currently below 20, 40, 60, 80 and 100 respectively. The defaults are 30, 90, 300, 600 and 1200.&lt;br /&gt;
&lt;br /&gt;
=== Heart/Sword Limits ===&lt;br /&gt;
  heartlimit=number&lt;br /&gt;
  swordlimit=number&lt;br /&gt;
&lt;br /&gt;
The maximum amount of fullhearts and swordpower that is allowed.&lt;br /&gt;
&lt;br /&gt;
=== 'putnpc' Scripting Command ===&lt;br /&gt;
  putnpcenabled=true/false&lt;br /&gt;
&lt;br /&gt;
Whether the [[Old GScript:putnpc|putnpc]] command is enabled. (Mostly [[Deprecated]])&lt;br /&gt;
&lt;br /&gt;
=== Language Selection ===&lt;br /&gt;
  translatedlanguages=comma seperated list of language domains, like de,...&lt;br /&gt;
&lt;br /&gt;
The languages of which a [[Translation system|translation]] file shall be loaded by the server. If a file exists, signs and _() text will be replaced with values from the translation file for this language. See [[Creation/Dev/Releases/Client/5.006#Translation_System|Graal v5 release notes]] for more.&lt;br /&gt;
&lt;br /&gt;
=== Server Language ===&lt;br /&gt;
  serverlanguage=language domain&lt;br /&gt;
&lt;br /&gt;
The default [[Translation system|language]] of the [[Playerworld]]. Defaults to English.&lt;br /&gt;
&lt;br /&gt;
=== Default Language ===&lt;br /&gt;
  defaultlanguage=language domain&lt;br /&gt;
&lt;br /&gt;
The default [[Translation system|language]] of the [[Playerworld]]. Defaults to English. Players see text in this language if their language is not in ''translatedlanguages''.&lt;br /&gt;
&lt;br /&gt;
=== NPC-Server 'Sleep' ===&lt;br /&gt;
  sleepwhennoplayers=true/false&lt;br /&gt;
&lt;br /&gt;
Whether the [[NPC Server]] must execute [[GScript|scripts]] even when no [[Player]] is around.&lt;br /&gt;
&lt;br /&gt;
=== Tilesets ===&lt;br /&gt;
  newtilesets=true/false&lt;br /&gt;
  newtilesetlevels=comma seperated list of levels&lt;br /&gt;
&lt;br /&gt;
Whether all [[level]]s will use the new [[tileset]] layout, or a match list of levels that shall. This will influence collision behavior (onwall script function, serverside [[Creation/Dev/Script/Client/TProjectile|projectile]] hit detection, etc.) on server-side only.&lt;br /&gt;
&lt;br /&gt;
You can specify just the start of the level name if you want to include a lot of levels at once (newtilesetlevels=myquest will switch on new tileset onwall behavior on server-side for myquest1.nw, myquest2.nw etc.).&lt;br /&gt;
&lt;br /&gt;
=== Staff ===&lt;br /&gt;
  staff=comma separated list of account names or community names&lt;br /&gt;
&lt;br /&gt;
The [[Account]]s in this list will count as [[Playerworld staff]] as if their admin level was &amp;gt; 0. Their [[PM|mass messages]] override the option to ignore mass messages, their [[Admin rights]] will be applied, and if their [[IP address range]] matches their actual IP address, they may log in to [[RC]]. The ip-range will automatically be set to match their current ip / computer id once they login for the first time.&lt;br /&gt;
&lt;br /&gt;
=== GMAP List ===&lt;br /&gt;
  gmaps=comma seperated list of gmap files, without .gmap extension&lt;br /&gt;
&lt;br /&gt;
The  server will attempt to load these as [[GMap]]s. As this line might get rather crowded, it is possible to have multiple gmaps= lines.&lt;br /&gt;
&lt;br /&gt;
=== Weapon Order ===&lt;br /&gt;
  weaponorder=comma seperated list of weapon names&lt;br /&gt;
&lt;br /&gt;
Specifies the order in which the [[NPC weapon]] [[GScript|scripts]] will be sent to the [[Clientside|client]] upon connection. This can be used to ensure that the inventory script that disables the [[Q menu]] will be sent first, for example. First, all weapons in this list will be sent in order, then all unlisted weapons.&lt;br /&gt;
&lt;br /&gt;
=== NPC-Control Rights ===&lt;br /&gt;
  npcrights=true/false&lt;br /&gt;
&lt;br /&gt;
Whether [[NC rights]] are active. For security reasons, it is strongly recommended to set this to true.&lt;br /&gt;
&lt;br /&gt;
=== Kill Count ===&lt;br /&gt;
  dontchangekills=true/false&lt;br /&gt;
&lt;br /&gt;
Selects whether the variables 'playerkills' and 'playerdeaths' can be changed [[serverside]] via [[GScript]].&lt;br /&gt;
&lt;br /&gt;
=== NPC-Server Nickname ===&lt;br /&gt;
  nickname=string&lt;br /&gt;
&lt;br /&gt;
The [[NPC Server]] will use this as its [[Nick name]], with (Server) appended. Ignores all [[Guild]] tags.&lt;br /&gt;
&lt;br /&gt;
=== Speedhack Tolerance ===&lt;br /&gt;
  speedhacktolerance=number&lt;br /&gt;
&lt;br /&gt;
This gives the percentage of data packages that [[Clientside|clients]] may send above the expected over without being logged as [[Trainer users]]. On [[Graal Kingdoms]], the rather conservative setting of 90 is used. If you set this too low, your server will crash.&lt;br /&gt;
&lt;br /&gt;
=== Idle Disconnect ===&lt;br /&gt;
  disconnectifnotmoved=true/false&lt;br /&gt;
&lt;br /&gt;
Selects whether [[Idle]] [[Player]]s are automatically disconnected. (Possibly deprecated).&lt;br /&gt;
&lt;br /&gt;
=== Save Levels ===&lt;br /&gt;
  savelevels=true/false&lt;br /&gt;
&lt;br /&gt;
Setting this to true allows changes to the [[Tile]]s of [[Level]]s to be saved to the actual level files from [[GScript|scripting]] commands, so it is possible to persistently change the levels.&lt;br /&gt;
&lt;br /&gt;
  savelevelsmessage=true/false&lt;br /&gt;
&lt;br /&gt;
Specifies if saving of levels should be reported on the RC chat (by default enabled).&lt;br /&gt;
&lt;br /&gt;
=== Only Staff ===&lt;br /&gt;
  onlystaff=false&lt;br /&gt;
&lt;br /&gt;
=== Log script function calls ===&lt;br /&gt;
  scriptlogfunctions=write player.nick,write player.guild,call sendtonc,call sendtorc&lt;br /&gt;
&lt;br /&gt;
This lets the npcserver log script activity into logs/scriptfunctionslog.txt. You&lt;br /&gt;
can get a list of available functons / actions by typing ''/listscriptlogfunctions''&lt;br /&gt;
on RC chat. Currently only important or exploitable things can be logged. Keep care&lt;br /&gt;
to delete the logs from time to time.&lt;br /&gt;
&lt;br /&gt;
=== Log script errors to file ===&lt;br /&gt;
  logscripterrorstofile=true/false&lt;br /&gt;
&lt;br /&gt;
When enabled, all script errors (e.g. missing server-side script functions) will be logged into logs/scripterrors.txt instead of RC chat.&lt;br /&gt;
&lt;br /&gt;
=== Level Auto-Save ===&lt;br /&gt;
  levelsautosave=true/false&lt;br /&gt;
Whether or not updateboard2 changes are saved to the level file automatically (by default true). Works only if 'savelevels' is enabled as well.&lt;br /&gt;
&lt;br /&gt;
=== Sending Player Attributes ===&lt;br /&gt;
  sendtoallattr=comma seperated list of attribute numbers&lt;br /&gt;
Specifies which player attributes (#P/player.attr[]) are to be sent to all players on the server (instead of only to people who see you).&lt;br /&gt;
*Set the server options sendtoallattr=1,2,3 for sending attributes 1, 2 and 3 to all players.&lt;br /&gt;
*When #P1/attr[1] is changing then it is also invoking the event onPlayerChanges(player,id) like when the head is changing.&lt;br /&gt;
&lt;br /&gt;
=== Optimized NPC Storage ===&lt;br /&gt;
  newnpcstorage=true/false&lt;br /&gt;
Whether or not to use the optimized storage for NPCs placed via putnpc2.&lt;br /&gt;
If this option is set, NPCs with this.savelocally = true; will use the optimized NPC storage.  This is recommended for NPCs that do not need to be loaded when the server is started up or do not need to be sitting in memory all of the time.&lt;br /&gt;
&lt;br /&gt;
=== DBNPCs Protection ===&lt;br /&gt;
  protectdbnpcs=true/false&lt;br /&gt;
Whether or not NPCs displayed in the NPC list in RC should be protected from being destroy()ed. Default is &amp;quot;true&amp;quot;. This option has been added because they were previously not protected and some servers might prefer to be able to destroy them by script. This option doesn't affect NPCs created with the script command putnpc2() which are are still destroy()able.&lt;br /&gt;
&lt;br /&gt;
=== Send NPC output to RCs ===&lt;br /&gt;
  sendechotorc=true/false&lt;br /&gt;
Sends output of NPCs (echo() command) to everyone instead of only to people with NPC rights.&lt;br /&gt;
&lt;br /&gt;
=== SQLite Databases ===&lt;br /&gt;
  database=dbname,dbfile[,dbname2,dbfile2[,etc.]]&lt;br /&gt;
Allows several SQLite database files to be opened or closed with specified names and filenames for use the the requestsql2 function.&lt;br /&gt;
Source: http://forums.graalonline.com/forums/showpost.php?p=1557272&amp;amp;postcount=17&lt;br /&gt;
&lt;br /&gt;
=== Player Syncing ===&lt;br /&gt;
  syncdistancex=number&lt;br /&gt;
  syncdistancey=number&lt;br /&gt;
  syncbydistanceinside=true/false&lt;br /&gt;
Define the radius (in tiles) at which players are synced to the screen. This is used for GMAPs to reduce players from being drawn outside of the specified radius. By default, it is being drawn at 192x192.&lt;br /&gt;
&lt;br /&gt;
=== Default Logging ===&lt;br /&gt;
  disablegralatlog=true/false&lt;br /&gt;
Toggles whether or not the default gralat log will be used when a player picks up a gralat on the server.&lt;br /&gt;
&lt;br /&gt;
=== Player Z Axis ===&lt;br /&gt;
  lockplayerz=true/false&lt;br /&gt;
Disables player's z-axis on the server. Locks player.z to undefined and does not allow any type of alteration. Any value of z outside of |-50, 170| is considered undefined.&lt;br /&gt;
&lt;br /&gt;
=== Hideplayer ===&lt;br /&gt;
  nohidewithoutbush=true/false&lt;br /&gt;
Script command hideplayer(float) will no longer be working unless the player is under a bush.&lt;br /&gt;
&lt;br /&gt;
=== Player Triggers ===&lt;br /&gt;
  sendplayertriggers=true/false&lt;br /&gt;
Prevents triggeraction from triggering other players. By default on server triggers and mouse clicks, they are being processed by the server first, otherwise being processed by the player.&lt;br /&gt;
&lt;br /&gt;
=== Item Drops ===&lt;br /&gt;
  bushitemtypes=list&lt;br /&gt;
  deathitemtypes=list&lt;br /&gt;
Examples for list are (greenrupee,bluerupee,goldrupee,darts,bombs,heart,etc).&lt;br /&gt;
These will define which items will be dropped from the specified event. &lt;br /&gt;
  itemdropevents=true/false&lt;br /&gt;
When itemdropevents is enabled, each time an item is dropped (like heart, goldrupee, etc) it will send the event to Control-NPC as onItemDrop(level,x,y,itemname).&lt;br /&gt;
&lt;br /&gt;
=== Item Spawn Percentages ===&lt;br /&gt;
  spawnrategreenrupee=number&lt;br /&gt;
  spawnratebluerupee=number&lt;br /&gt;
  spawnrategoldrupee=number&lt;br /&gt;
  spawnrateheart=number&lt;br /&gt;
  spawnratebombs=number&lt;br /&gt;
  spawnratedarts=number&lt;br /&gt;
  spawnrate...=number&lt;br /&gt;
The value of these options are from 0 to 100, being a percentage at which the specified item will drop from a bush or death.&lt;br /&gt;
&lt;br /&gt;
=== Horses ===&lt;br /&gt;
  puthorseenabled=true/false&lt;br /&gt;
This option allows or pevents script command puthorse() from being executed on the server.&lt;br /&gt;
&lt;br /&gt;
=== RC Mass PM ===&lt;br /&gt;
  rcofftagoverridesignore=true/false&lt;br /&gt;
this option allows or prevents RC-Masses to override &amp;quot;ignore masses&amp;quot; when the Admin sending the Mass from RC is off-Staff Tag&lt;br /&gt;
&lt;br /&gt;
=== Putbomb Filter ===&lt;br /&gt;
  putbombenabled=true/false&lt;br /&gt;
  bomballowedtypes=all or comma separated text of bomb power (e.g. 1,2,3)&lt;br /&gt;
  bombfilterlog=true/false - logs to logs/bombfilter.txt&lt;br /&gt;
&lt;br /&gt;
=== Showimg/Ani Filter ===&lt;br /&gt;
  showimgstypes=all or ani,img,text&lt;br /&gt;
  showimgsallowedganis=all or comma separated ganis (e.g. idle,walk,sit)&lt;br /&gt;
  showimgsallowedimages=all or comma separated images (e.g. block.png,block2.png)&lt;br /&gt;
  showimgsfilterlog=true - logs to logs/showimgsfilter.txt&lt;/div&gt;</summary>
		<author><name>Fowlplay4</name></author>
	</entry>
	<entry>
		<id>https://graalonline.net/index.php?title=Server_options&amp;diff=19474</id>
		<title>Server options</title>
		<link rel="alternate" type="text/html" href="https://graalonline.net/index.php?title=Server_options&amp;diff=19474"/>
		<updated>2012-04-22T01:21:33Z</updated>

		<summary type="html">&lt;p&gt;Fowlplay4: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Administration]]&lt;br /&gt;
The '''server options''' are a collection of key=value configuration options that allow you to customize the non-[[GScript|script]]able behaviour of an individual [[Playerworld]].&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
&lt;br /&gt;
Options are usually set only by high [[Playerworld]] staff, preferably only the [[Playerworld]] owner, as they are very powerful and can be abused easily.&lt;br /&gt;
&lt;br /&gt;
When you omit an option, its value will not be changed if the option has been used before. Therefore, it is more secure to change only the value and not whole option, should you need to change something.&lt;br /&gt;
&lt;br /&gt;
Lines beginning with # are not parsed, and can be used for comments.&lt;br /&gt;
&lt;br /&gt;
== Known Server Options ==&lt;br /&gt;
&lt;br /&gt;
Please add new options if you discover them.&lt;br /&gt;
&lt;br /&gt;
=== Start location ===&lt;br /&gt;
  startlevel=level name&lt;br /&gt;
  startx=number&lt;br /&gt;
  starty=number&lt;br /&gt;
&lt;br /&gt;
This sets the originating location for all [[Player]]s which do not have location statistics of their own saved [[Local|locally]].&lt;br /&gt;
&lt;br /&gt;
=== Unstick me location ===&lt;br /&gt;
  unstickmelevel=level name&lt;br /&gt;
  unstickmex=number&lt;br /&gt;
  unstickmey=number&lt;br /&gt;
&lt;br /&gt;
These define the position that a [[Player]] is warped to after using the [[Unstick me]] command.&lt;br /&gt;
&lt;br /&gt;
=== Unstick Time ===&lt;br /&gt;
  unstickmetime=number&lt;br /&gt;
&lt;br /&gt;
This option sets the amount of time a player has to be idle before they can use the unstick me command.&lt;br /&gt;
&lt;br /&gt;
=== Protected Weapons ===&lt;br /&gt;
  protectedweapons=list of comma seperated weapon names&lt;br /&gt;
&lt;br /&gt;
[[NPC weapon]]s that cannot be deleted by the [[Player]]. This differs from weapons with asterisk prefixed name which cannot be deleted with the Del key, but still can be deleted on the [[Clientside]] using the [[Old GScript:destroy|destroy]] command. `Protected' weapons can (unless *ified) be deleted with Del, but the NPC server will not remove them from the player's weapon list and thus the [[Serverside]] part will remain and the player obtains them again on the next connect.&lt;br /&gt;
&lt;br /&gt;
=== Jail Levels ===&lt;br /&gt;
  jaillevels=level names comma separated&lt;br /&gt;
&lt;br /&gt;
Non-[[Playerworld staff|staff]] players in these levels will not be able to leave them. A [[Serverside]] [[Old GScript:setlevel2|setlevel2]] or warping with [[RC]] is neccessary. Also, they can send [[PM]]s only to RC clients and not regular [[Client]]s.&lt;br /&gt;
, ,&lt;br /&gt;
&lt;br /&gt;
=== Explosion Restriction ===&lt;br /&gt;
  noexplosions=true/false&lt;br /&gt;
&lt;br /&gt;
Disables the result of [[Old GScript:putexplosion|putexplosion]], and `explosive' [[NPC weapons]].&lt;br /&gt;
&lt;br /&gt;
=== Statistic Restriction ===&lt;br /&gt;
  setbodyallowed=true/false&lt;br /&gt;
  setheadallowed=true/false&lt;br /&gt;
  setbomyallowed=true/false&lt;br /&gt;
  setswordallowed=true/false&lt;br /&gt;
  setshieldallowed=true/false&lt;br /&gt;
&lt;br /&gt;
Whether the chat commands to change the player's [[Appearance commands|appearance]] are enabled. Defaults to true.&lt;br /&gt;
&lt;br /&gt;
=== Gralat Loss Options ===&lt;br /&gt;
  mindeathgralats=number&lt;br /&gt;
  maxdeathgralats=number&lt;br /&gt;
&lt;br /&gt;
Defines the amount of [[Gralat]]s that the player drops on death.&lt;br /&gt;
&lt;br /&gt;
=== Staff Gralat Restriction ===&lt;br /&gt;
  normaladminscanchangegralats=true/false&lt;br /&gt;
&lt;br /&gt;
Whether normal [[RC]]s can change the gralat count of a player. `Normal' used to be defined as `below [[Adminlevel]] 4', but nowadays is probably regulated by certain high-level [[Admin right]]s.&lt;br /&gt;
&lt;br /&gt;
=== Local 'Staff Guilds' ===&lt;br /&gt;
  staffguilds=comma seperated list of guild names&lt;br /&gt;
&lt;br /&gt;
Matches to these [[Guild]] names appear in the `Staff' section of the playerlist.&lt;br /&gt;
&lt;br /&gt;
=== `Bush' Items ===&lt;br /&gt;
  bushitems=true/false&lt;br /&gt;
&lt;br /&gt;
Selects whether [[Bush]]es contain [[Item]]s. May not work on a [[GMap]].&lt;br /&gt;
&lt;br /&gt;
=== `Baddy' Items ===&lt;br /&gt;
  baddyitems=true/false&lt;br /&gt;
&lt;br /&gt;
Selects whether [[Baddy|baddies]] drop [[Item]]s once killed.&lt;br /&gt;
&lt;br /&gt;
=== `Healing' Swords ===&lt;br /&gt;
  healswords=true/false&lt;br /&gt;
&lt;br /&gt;
Selects whether is possible to have a negative [[Sword]] power and thus add [[Heart]]s to those hit by the sword.&lt;br /&gt;
&lt;br /&gt;
=== Non-script timeouts ===&lt;br /&gt;
  respawntime=number&lt;br /&gt;
  horselifetime=number&lt;br /&gt;
  baddyrespawntime=number&lt;br /&gt;
&lt;br /&gt;
Timeout in seconds for respawn times for [[Bush]]es, [[Horse]]s and [[Baddy|Baddies]]&lt;br /&gt;
&lt;br /&gt;
=== Server Scripting Flags ===&lt;br /&gt;
  dontaddserverflags=true/false&lt;br /&gt;
&lt;br /&gt;
Selects whether [[GScript|scripts]] can add new [[Server flag]]s or only modify existing ones.&lt;br /&gt;
&lt;br /&gt;
=== Server Maps ===&lt;br /&gt;
  bigmap=maptext,mapimage,defaultx,defaulty&lt;br /&gt;
  minimap=maptext,mapimage,defaultx,defaulty&lt;br /&gt;
&lt;br /&gt;
Default serverwide [[Map]]s. Syntax resembles [[Old GScript:setmap|setmap]] and [[Old GScript:setminimap|setminimap]] [[GScript]] commands.&lt;br /&gt;
&lt;br /&gt;
=== Warping (All Players) ===&lt;br /&gt;
  warptoforall=true/false&lt;br /&gt;
  warptoforlowadmins=true/false&lt;br /&gt;
&lt;br /&gt;
Whether all [[Player]]s can use the [[Warpto]] command, and whether [[Global]] [[Admin level]] 1 allows warpto.&lt;br /&gt;
&lt;br /&gt;
=== Warping Activation ===&lt;br /&gt;
  warpto=false/true&lt;br /&gt;
  ignorewarpto=true/false&lt;br /&gt;
&lt;br /&gt;
Allows or disallows the default [[Warpto]] command for all [[staff]], including [[Global]]s. This is normally enabled.&lt;br /&gt;
&lt;br /&gt;
Note that warpto=false will show a &amp;quot;(warping is disabled)&amp;quot; error message to [[Player]], whereas ignorewarpto=true will treat [[Warpto]] commands as just normal chat text and display no error message. &lt;br /&gt;
&lt;br /&gt;
The latter is good for replacing the default [[Warpto]] command with a scripted version.&lt;br /&gt;
&lt;br /&gt;
=== Ghost Mode ===&lt;br /&gt;
  ghostmodeenabled=true/false&lt;br /&gt;
  ghostmodefornotstaff=true/false&lt;br /&gt;
&lt;br /&gt;
Selects whether all [[Player]]s appear as [[Ghost]], or only non-[[Playerworld staff|staff]] players, or nobody.&lt;br /&gt;
&lt;br /&gt;
=== Playerlist Icons ===&lt;br /&gt;
  playerlisticons=comma seperated list of statusses&lt;br /&gt;
&lt;br /&gt;
Possible status list, [[Player]]s can select one of them in the [[Players list]]. There must be a [[Downloadable]] file plisticonNAME.png available in a folder specified as `file' in [[Folder configuration]].&lt;br /&gt;
&lt;br /&gt;
=== Profile Variables ===&lt;br /&gt;
  profilevars=comma seperated list of profile variables&lt;br /&gt;
&lt;br /&gt;
Selects what is to be displayed in a [[Player]]'s profile. The default variables are: playerkills, playerdeaths, playerfullhearts, playerrating, playerap, playerrupees, playerswordpower, canspin, largely modelled after [[Old GScript]]. Custom string variables can be added in the format `name=stringname'. If name is not specified, stringname is used.&lt;br /&gt;
&lt;br /&gt;
=== Trial Account Limits ===&lt;br /&gt;
  limitfreeplayers2=true/false&lt;br /&gt;
&lt;br /&gt;
Selects whether to disable adding of [[Bomb]]s, [[Arrow]]s, and [[Explosion]]s for [[Trial account]]s.&lt;br /&gt;
&lt;br /&gt;
=== AP System Activation ===&lt;br /&gt;
  apsystem=true/false&lt;br /&gt;
&lt;br /&gt;
Whether the [[AP]] system is enabled. If yes, there are some restrictions for [[Player]]s with low AP regarding hearts.&lt;br /&gt;
&lt;br /&gt;
=== Starting AP ===&lt;br /&gt;
  startap=number&lt;br /&gt;
&lt;br /&gt;
How much [[AP]] [[Player]]s are given upon first login to this [[Playerworld]].&lt;br /&gt;
&lt;br /&gt;
=== Global Guilds Activation ===&lt;br /&gt;
  globalguilds=true/false&lt;br /&gt;
&lt;br /&gt;
Allows or disallows [[Guild]] from the [[Global]] database. This is normally enabled.&lt;br /&gt;
&lt;br /&gt;
  allowedglobalguilds=guild,guild,guild&lt;br /&gt;
&lt;br /&gt;
This option limits what guilds can be used from the [[Global Guilds]] database. (Note: globalguilds= needs to be set to false so other guilds besides the allowed can not be used.&lt;br /&gt;
&lt;br /&gt;
=== AP Timeouts ===&lt;br /&gt;
  aptime0=number&lt;br /&gt;
  aptime1=number&lt;br /&gt;
  aptime2=number&lt;br /&gt;
  aptime3=number&lt;br /&gt;
  aptime4=number&lt;br /&gt;
&lt;br /&gt;
Time (in seconds) it takes to recharge one point of [[AP]] when the AP is currently below 20, 40, 60, 80 and 100 respectively. The defaults are 30, 90, 300, 600 and 1200.&lt;br /&gt;
&lt;br /&gt;
=== Heart/Sword Limits ===&lt;br /&gt;
  heartlimit=number&lt;br /&gt;
  swordlimit=number&lt;br /&gt;
&lt;br /&gt;
The maximum amount of fullhearts and swordpower that is allowed.&lt;br /&gt;
&lt;br /&gt;
=== 'putnpc' Scripting Command ===&lt;br /&gt;
  putnpcenabled=true/false&lt;br /&gt;
&lt;br /&gt;
Whether the [[Old GScript:putnpc|putnpc]] command is enabled. (Mostly [[Deprecated]])&lt;br /&gt;
&lt;br /&gt;
=== Language Selection ===&lt;br /&gt;
  translatedlanguages=comma seperated list of language domains, like de,...&lt;br /&gt;
&lt;br /&gt;
The languages of which a [[Translation system|translation]] file shall be loaded by the server. If a file exists, signs and _() text will be replaced with values from the translation file for this language. See [[Creation/Dev/Releases/Client/5.006#Translation_System|Graal v5 release notes]] for more.&lt;br /&gt;
&lt;br /&gt;
=== Server Language ===&lt;br /&gt;
  serverlanguage=language domain&lt;br /&gt;
&lt;br /&gt;
The default [[Translation system|language]] of the [[Playerworld]]. Defaults to English.&lt;br /&gt;
&lt;br /&gt;
=== Default Language ===&lt;br /&gt;
  defaultlanguage=language domain&lt;br /&gt;
&lt;br /&gt;
The default [[Translation system|language]] of the [[Playerworld]]. Defaults to English. Players see text in this language if their language is not in ''translatedlanguages''.&lt;br /&gt;
&lt;br /&gt;
=== NPC-Server 'Sleep' ===&lt;br /&gt;
  sleepwhennoplayers=true/false&lt;br /&gt;
&lt;br /&gt;
Whether the [[NPC Server]] must execute [[GScript|scripts]] even when no [[Player]] is around.&lt;br /&gt;
&lt;br /&gt;
=== Tilesets ===&lt;br /&gt;
  newtilesets=true/false&lt;br /&gt;
  newtilesetlevels=comma seperated list of levels&lt;br /&gt;
&lt;br /&gt;
Whether all [[level]]s will use the new [[tileset]] layout, or a match list of levels that shall. This will influence collision behavior (onwall script function, serverside [[Creation/Dev/Script/Client/TProjectile|projectile]] hit detection, etc.) on server-side only.&lt;br /&gt;
&lt;br /&gt;
You can specify just the start of the level name if you want to include a lot of levels at once (newtilesetlevels=myquest will switch on new tileset onwall behavior on server-side for myquest1.nw, myquest2.nw etc.).&lt;br /&gt;
&lt;br /&gt;
=== Staff ===&lt;br /&gt;
  staff=comma separated list of account names or community names&lt;br /&gt;
&lt;br /&gt;
The [[Account]]s in this list will count as [[Playerworld staff]] as if their admin level was &amp;gt; 0. Their [[PM|mass messages]] override the option to ignore mass messages, their [[Admin rights]] will be applied, and if their [[IP address range]] matches their actual IP address, they may log in to [[RC]]. The ip-range will automatically be set to match their current ip / computer id once they login for the first time.&lt;br /&gt;
&lt;br /&gt;
=== GMAP List ===&lt;br /&gt;
  gmaps=comma seperated list of gmap files, without .gmap extension&lt;br /&gt;
&lt;br /&gt;
The  server will attempt to load these as [[GMap]]s. As this line might get rather crowded, it is possible to have multiple gmaps= lines.&lt;br /&gt;
&lt;br /&gt;
=== Weapon Order ===&lt;br /&gt;
  weaponorder=comma seperated list of weapon names&lt;br /&gt;
&lt;br /&gt;
Specifies the order in which the [[NPC weapon]] [[GScript|scripts]] will be sent to the [[Clientside|client]] upon connection. This can be used to ensure that the inventory script that disables the [[Q menu]] will be sent first, for example. First, all weapons in this list will be sent in order, then all unlisted weapons.&lt;br /&gt;
&lt;br /&gt;
=== NPC-Control Rights ===&lt;br /&gt;
  npcrights=true/false&lt;br /&gt;
&lt;br /&gt;
Whether [[NC rights]] are active. For security reasons, it is strongly recommended to set this to true.&lt;br /&gt;
&lt;br /&gt;
=== Kill Count ===&lt;br /&gt;
  dontchangekills=true/false&lt;br /&gt;
&lt;br /&gt;
Selects whether the variables 'playerkills' and 'playerdeaths' can be changed [[serverside]] via [[GScript]].&lt;br /&gt;
&lt;br /&gt;
=== NPC-Server Nickname ===&lt;br /&gt;
  nickname=string&lt;br /&gt;
&lt;br /&gt;
The [[NPC Server]] will use this as its [[Nick name]], with (Server) appended. Ignores all [[Guild]] tags.&lt;br /&gt;
&lt;br /&gt;
=== Speedhack Tolerance ===&lt;br /&gt;
  speedhacktolerance=number&lt;br /&gt;
&lt;br /&gt;
This gives the percentage of data packages that [[Clientside|clients]] may send above the expected over without being logged as [[Trainer users]]. On [[Graal Kingdoms]], the rather conservative setting of 90 is used. If you set this too low, your server will crash.&lt;br /&gt;
&lt;br /&gt;
=== Idle Disconnect ===&lt;br /&gt;
  disconnectifnotmoved=true/false&lt;br /&gt;
&lt;br /&gt;
Selects whether [[Idle]] [[Player]]s are automatically disconnected. (Possibly deprecated).&lt;br /&gt;
&lt;br /&gt;
=== Save Levels ===&lt;br /&gt;
  savelevels=true/false&lt;br /&gt;
&lt;br /&gt;
Setting this to true allows changes to the [[Tile]]s of [[Level]]s to be saved to the actual level files from [[GScript|scripting]] commands, so it is possible to persistently change the levels.&lt;br /&gt;
&lt;br /&gt;
  savelevelsmessage=true/false&lt;br /&gt;
&lt;br /&gt;
Specifies if saving of levels should be reported on the RC chat (by default enabled).&lt;br /&gt;
&lt;br /&gt;
=== Only Staff ===&lt;br /&gt;
  onlystaff=false&lt;br /&gt;
&lt;br /&gt;
=== Log script function calls ===&lt;br /&gt;
  scriptlogfunctions=write player.nick,write player.guild,call sendtonc,call sendtorc&lt;br /&gt;
&lt;br /&gt;
This lets the npcserver log script activity into logs/scriptfunctionslog.txt. You&lt;br /&gt;
can get a list of available functons / actions by typing ''/listscriptlogfunctions''&lt;br /&gt;
on RC chat. Currently only important or exploitable things can be logged. Keep care&lt;br /&gt;
to delete the logs from time to time.&lt;br /&gt;
&lt;br /&gt;
=== Log script errors to file ===&lt;br /&gt;
  logscripterrorstofile=true/false&lt;br /&gt;
&lt;br /&gt;
When enabled, all script errors (e.g. missing server-side script functions) will be logged into logs/scripterrors.txt instead of RC chat.&lt;br /&gt;
&lt;br /&gt;
=== Level Auto-Save ===&lt;br /&gt;
  levelsautosave=true/false&lt;br /&gt;
Whether or not updateboard2 changes are saved to the level file automatically (by default true). Works only if 'savelevels' is enabled as well.&lt;br /&gt;
&lt;br /&gt;
=== Sending Player Attributes ===&lt;br /&gt;
  sendtoallattr=comma seperated list of attribute numbers&lt;br /&gt;
Specifies which player attributes (#P/player.attr[]) are to be sent to all players on the server (instead of only to people who see you).&lt;br /&gt;
*Set the server options sendtoallattr=1,2,3 for sending attributes 1, 2 and 3 to all players.&lt;br /&gt;
*When #P1/attr[1] is changing then it is also invoking the event onPlayerChanges(player,id) like when the head is changing.&lt;br /&gt;
&lt;br /&gt;
=== Optimized NPC Storage ===&lt;br /&gt;
  newnpcstorage=true/false&lt;br /&gt;
Whether or not to use the optimized storage for NPCs placed via putnpc2.&lt;br /&gt;
If this option is set, NPCs with this.savelocally = true; will use the optimized NPC storage.  This is recommended for NPCs that do not need to be loaded when the server is started up or do not need to be sitting in memory all of the time.&lt;br /&gt;
&lt;br /&gt;
=== DBNPCs Protection ===&lt;br /&gt;
  protectdbnpcs=true/false&lt;br /&gt;
Whether or not NPCs displayed in the NPC list in RC should be protected from being destroy()ed. Default is &amp;quot;true&amp;quot;. This option has been added because they were previously not protected and some servers might prefer to be able to destroy them by script. This option doesn't affect NPCs created with the script command putnpc2() which are are still destroy()able.&lt;br /&gt;
&lt;br /&gt;
=== Send NPC output to RCs ===&lt;br /&gt;
  sendechotorc=true/false&lt;br /&gt;
Sends output of NPCs (echo() command) to everyone instead of only to people with NPC rights.&lt;br /&gt;
&lt;br /&gt;
=== SQLite Databases ===&lt;br /&gt;
  database=dbname,dbfile[,dbname2,dbfile2[,etc.]]&lt;br /&gt;
Allows several SQLite database files to be opened or closed with specified names and filenames for use the the requestsql2 function.&lt;br /&gt;
Source: http://forums.graalonline.com/forums/showpost.php?p=1557272&amp;amp;postcount=17&lt;br /&gt;
&lt;br /&gt;
=== Player Syncing ===&lt;br /&gt;
  syncdistancex=number&lt;br /&gt;
  syncdistancey=number&lt;br /&gt;
  syncbydistanceinside=true/false&lt;br /&gt;
Define the radius (in tiles) at which players are synced to the screen. This is used for GMAPs to reduce players from being drawn outside of the specified radius. By default, it is being drawn at 192x192.&lt;br /&gt;
&lt;br /&gt;
=== Default Logging ===&lt;br /&gt;
  disablegralatlog=true/false&lt;br /&gt;
Toggles whether or not the default gralat log will be used when a player picks up a gralat on the server.&lt;br /&gt;
&lt;br /&gt;
=== Player Z Axis ===&lt;br /&gt;
  lockplayerz=true/false&lt;br /&gt;
Disables player's z-axis on the server. Locks player.z to undefined and does not allow any type of alteration. Any value of z outside of |-50, 170| is considered undefined.&lt;br /&gt;
&lt;br /&gt;
=== Hideplayer ===&lt;br /&gt;
  nohidewithoutbush=true/false&lt;br /&gt;
Script command hideplayer(float) will no longer be working unless the player is under a bush.&lt;br /&gt;
&lt;br /&gt;
=== Player Triggers ===&lt;br /&gt;
  sendplayertriggers=true/false&lt;br /&gt;
Prevents triggeraction from triggering other players. By default on server triggers and mouse clicks, they are being processed by the server first, otherwise being processed by the player.&lt;br /&gt;
&lt;br /&gt;
=== Item Drops ===&lt;br /&gt;
  bushitemtypes=list&lt;br /&gt;
  deathitemtypes=list&lt;br /&gt;
Examples for list are (greenrupee,bluerupee,goldrupee,darts,bombs,heart,etc).&lt;br /&gt;
These will define which items will be dropped from the specified event. &lt;br /&gt;
  itemdropevents=true/false&lt;br /&gt;
When itemdropevents is enabled, each time an item is dropped (like heart, goldrupee, etc) it will send the event to Control-NPC as onItemDrop(level,x,y,itemname).&lt;br /&gt;
&lt;br /&gt;
=== Item Spawn Percentages ===&lt;br /&gt;
  spawnrategreenrupee=number&lt;br /&gt;
  spawnratebluerupee=number&lt;br /&gt;
  spawnrategoldrupee=number&lt;br /&gt;
  spawnrateheart=number&lt;br /&gt;
  spawnratebombs=number&lt;br /&gt;
  spawnratedarts=number&lt;br /&gt;
  spawnrate...=number&lt;br /&gt;
The value of these options are from 0 to 100, being a percentage at which the specified item will drop from a bush or death.&lt;br /&gt;
&lt;br /&gt;
=== Horses ===&lt;br /&gt;
  puthorseenabled=true/false&lt;br /&gt;
This option allows or pevents script command puthorse() from being executed on the server.&lt;br /&gt;
&lt;br /&gt;
=== RC Mass PM ===&lt;br /&gt;
  rcofftagoverridesignore=true/false&lt;br /&gt;
this option allows or prevents RC-Masses to override &amp;quot;ignore masses&amp;quot; when the Admin sending the Mass from RC is off-Staff Tag&lt;br /&gt;
&lt;br /&gt;
=== Putbomb Filter ===&lt;br /&gt;
  putbombenabled=true/false&lt;br /&gt;
  bomballowedtypes=all or comma separated text of bomb power (e.g. 1,2,3)&lt;br /&gt;
  bombfilterlog=true/false - logs to logs/bombfilter.txt&lt;br /&gt;
&lt;br /&gt;
=== Showimg/Ani Filter ===&lt;br /&gt;
  showimgstypes=all or ani,img&lt;br /&gt;
  showimgsallowedganis=all or comma separated ganis (e.g. idle,walk,sit)&lt;br /&gt;
  showimgsallowedimages=all or comma separated images (e.g. block.png,block2.png)&lt;br /&gt;
  showimgsfilterlog=true - logs to logs/showimgsfilter.txt&lt;/div&gt;</summary>
		<author><name>Fowlplay4</name></author>
	</entry>
	<entry>
		<id>https://graalonline.net/index.php?title=Particle_Engine&amp;diff=18596</id>
		<title>Particle Engine</title>
		<link rel="alternate" type="text/html" href="https://graalonline.net/index.php?title=Particle_Engine&amp;diff=18596"/>
		<updated>2011-07-06T03:03:26Z</updated>

		<summary type="html">&lt;p&gt;Fowlplay4: /* Reference */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Scripting Reference]]&lt;br /&gt;
==Introduction==&lt;br /&gt;
&lt;br /&gt;
The particle engine in Graal v4 is an extension of the SHOWIMG feature. With the command &amp;quot;showimg&amp;quot; scripts can display graphics, text, polygons and even animations on the screen. That command is mainly meant for client-side effects, but can also partially used on the serverside, and they can also be made visible on other player's screens. Graphics or texts displayed using this command will be called SHOWIMGs in this paper.&lt;br /&gt;
&lt;br /&gt;
Each SHOWIMG can be used as emitter for particles. That way all kind of scripts can use the new particle engine - just display a SHOWIMG and set the attributes of the SHOWIMG so that the particle emitter is activated and is emitting particles. A particle can be seen as an independent graphic object that is put at the position of the emitter once it is emitted, then travelling over the screen, and disappearing once its lifetime is over or it is outside the allowed screen bounds. Actually a particle is itself a SHOWIMG and can so be used for any kind of graphical effect, and can theoretically even be used as emitter for other particles.&lt;br /&gt;
&lt;br /&gt;
The reason for using a particle engine is speed: theoretically all graphical effects could be done by using scripts which call commands to display graphics or text. But often such effects contain several hundreds or even thousands of graphics, which must be moved and animated several times each second. If there are many objects using scripted particle effects that can slow down the game quite a lot. That's why it is possible in Graal v4 to use a built-in particle engine with many possible options to influence the look and behaviour of the particles so that most graphics effects can be displayed using that engine.&lt;br /&gt;
&lt;br /&gt;
==Create a SHOWIMG==&lt;br /&gt;
&lt;br /&gt;
To use the particle engine, you first need a SHOWIMG as emitter:&lt;br /&gt;
&lt;br /&gt;
  with (findimg(200)) {&lt;br /&gt;
    x = player.x;&lt;br /&gt;
    y = player.y;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
The function findimg(index) is searching for an existing SHOWIMG with the index of 200 and then using that for setting the other attributes, otherwise it is automatically creating a new SHOWIMG with index 200 for the current object (npc, or player if its a weapon/gui-script). Afterwards it is setting the position of the SHOWIMG to position of the player.&lt;br /&gt;
&lt;br /&gt;
==Configure emitter and particle==&lt;br /&gt;
&lt;br /&gt;
Once the SHOWIMG is setup, you need to configure the emitter and the default attributes of the particle that should be emitted:&lt;br /&gt;
&lt;br /&gt;
  with (findimg(200)) {&lt;br /&gt;
    x = player.x;&lt;br /&gt;
    y = player.y;&lt;br /&gt;
    emitter.attribute = value;&lt;br /&gt;
    emitter.particle.attribute = value;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
Possible attribute names are&lt;br /&gt;
(you can run &amp;quot;Graal4.exe -listscriptfunctions&amp;quot; to get the latest list of script functions):&lt;br /&gt;
&lt;br /&gt;
  TParticleEmitter (TGraalVar):&lt;br /&gt;
    attachposition - boolean - says if the particle is moved with the emitter (true), or can fly freely (false)&lt;br /&gt;
    autorotation - boolean - for making the particle heading into the direction it flies (rotation=angle)&lt;br /&gt;
    checkbelowterrain - boolean - destroys the particles if they are below the terrain height (or zero on flat maps)&lt;br /&gt;
    clippingbox - {xd1,yd1,zd1, xd2,yd2,zd2} - defines a box, if particles leave this box then they are destroyed&lt;br /&gt;
    cliptoscreen - boolean - automatically resizes the clipping box to the visible area&lt;br /&gt;
    continueafterdestroy - boolean&lt;br /&gt;
    delaymin - float - minimum delay till the next automatic emission (&amp;gt;= 0.05 seconds)&lt;br /&gt;
    delaymax - float - maximum delay till the next automatic emission&lt;br /&gt;
    emissionoffset - {xd,yd,zd} - by default {0,0,0}, says at which position the particles should be emitted, relative to the current emitter position&lt;br /&gt;
    emitautomatically - boolean - enables or disabled the automatic emission of particles after delaymin/delaymax time&lt;br /&gt;
    firstinfront - boolean - says if the first emitted particle should be displayed in front (true by default)&lt;br /&gt;
    maxparticles - integer - can be used to limit the total particle count&lt;br /&gt;
    nrofparticles - integer - specifies how many particles are emitted at once&lt;br /&gt;
    particle - object (read only) - defines the default attributes of the next emitted particle&lt;br /&gt;
    wraptoclippingbox - boolean - if a particle leaves on one side, it appears on the other side (use with &amp;quot;cliptoscreen&amp;quot; option)&lt;br /&gt;
    dropemitter - TParticleEmitter - works exactly like the emitter itself and are used for emitting particles once a particle drops on the ground (rain drops) or the lifetime is over (for fireworks)&lt;br /&gt;
    dropwateremitter - TParticleEmitter - see dropemitter&lt;br /&gt;
 &lt;br /&gt;
  TParticle (TGraalVar):&lt;br /&gt;
    angle - float - the movement angle of the particle (horizontally on the (x,y) plane)&lt;br /&gt;
    lifetime - float - in seconds, the particle will be destroyed when the lifetime is over&lt;br /&gt;
    movementvector - string - says in which direction the particles moves, this is a combination of angle and zangle&lt;br /&gt;
    speed - float - tiles per second&lt;br /&gt;
    spin - float - automatic rotation of the particle (radiants each second)&lt;br /&gt;
    zangle - float - the vertical movement angle - says if the particles goes up or down&lt;br /&gt;
 &lt;br /&gt;
    Particle attributes that are the same like for a SHOWIMG:&lt;br /&gt;
    alpha - float - transparency&lt;br /&gt;
    ani - string - a gani file (use &amp;quot;projectile.actor&amp;quot; for changing the attributes)&lt;br /&gt;
    blue - float - blue color value (0-1)&lt;br /&gt;
    code - string - the old representation as 'font@style@text'&lt;br /&gt;
    dimension - integer - polygon dimension (2 or 3)&lt;br /&gt;
    dir - integer - animation direction&lt;br /&gt;
    emitter - object (read only) - for specifying the attributes of a sub-emitter&lt;br /&gt;
    font - string - text font name&lt;br /&gt;
    green - float - green color value (0-1)&lt;br /&gt;
    image - string - image filename&lt;br /&gt;
    layer - integer - 4 or higher for particle which move in screen coordinates, below 4 for level coordinates&lt;br /&gt;
    mode - integer - the image drawing mode (0 - add, 1 - transparent, 2 - subtract, 3 - daynight)&lt;br /&gt;
    playerlook - boolean - if the animation should take it's head, body, sword, shield and attr[] from the owner (playerlook), set this to false if you want to set the images yourself by changing showimg.actor.head etc.&lt;br /&gt;
    polygon - object - array of coordinates for displaying a 2 or 3 dimensional polygon&lt;br /&gt;
    red - float - red color value (0-1)&lt;br /&gt;
    rotation - float - defines in which direction the particle graphics is facing&lt;br /&gt;
    stretchx - float - horizontal particle graphics stretch factor (default 1)&lt;br /&gt;
    stretchy - float - vertical particle graphics stretch factor (default 1)&lt;br /&gt;
    style - string - text style (e.g. &amp;quot;b&amp;quot; for bold text)&lt;br /&gt;
    text - string - a text that should be displayed on the SHOWIMG position&lt;br /&gt;
    zoom - float - zoom factor of the particle graphics or text&lt;br /&gt;
&lt;br /&gt;
==Add particle modifiers==&lt;br /&gt;
&lt;br /&gt;
Once you have setup the SHOWIMG and specified the attributes of the emitter and default particle, you can also specify particle modifiers so that the particles are not always flying into the same direction and look the same. There are 3 different functions, for modifying the default particle addemitmodifier(), for modifying all existing particles addglobalmodifier(), and for modifying the attributes for each particle individually addlocalmodifier(). The local modifiers are the most often used modifier.&lt;br /&gt;
Parameters are:&lt;br /&gt;
  modifier type - once,impulse or range - modifies the particle one time, periodically or only in the given time range&lt;br /&gt;
  rangemin - seconds, minimum delay until first modification or start of modification range (if modifier is &amp;quot;range&amp;quot;)&lt;br /&gt;
  rangemax - seconds, maximum delay until first modification or end of modification range (if modifier is &amp;quot;range&amp;quot;)&lt;br /&gt;
  variable - x,y,z,movex,movey,movez,angle,zangle,speed,rotation,spin,stretchx,stretchy,red,green,blue,alpha or zoom&lt;br /&gt;
  variable modification type - replace,add or multiply (if modifier type is &amp;quot;range&amp;quot; then only &amp;quot;replace&amp;quot; and &amp;quot;add&amp;quot; are valid)&lt;br /&gt;
  valuemin - range start of the random value or first value to set/add (if modifier is &amp;quot;range&amp;quot;)&lt;br /&gt;
  valuemax - range end of the random value or last value to set/add (if modifier is &amp;quot;range&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Those 3 functions addemitmodifier(), addglobalmodifier() and addlocalmodifier() are returning a modifier object which can be used to attach more variable modifications to the same impulse:&lt;br /&gt;
&lt;br /&gt;
  with (addlocalmodifier(&amp;quot;impulse&amp;quot;,1,2,&amp;quot;angle&amp;quot;,&amp;quot;replace&amp;quot;,0,pi)) {&lt;br /&gt;
    addmod(&amp;quot;zoom&amp;quot;,&amp;quot;add&amp;quot;,0.1,0.2);&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
This example is modifying the angle each 1-2 seconds, and at the same time it is zooming the particle so that it grows bigger. If you don't need to have the two modifiers act at the same moment, then you could have called addlocalmodifier(&amp;quot;impulse&amp;quot;,1,2,&amp;quot;zoom&amp;quot;,&amp;quot;add&amp;quot;,0.1,0.2) which looks quite the same, but is not guaranteed to happen at the same moment like the first modifier. Most of the time you don't need the addmod-function though.&lt;br /&gt;
&lt;br /&gt;
==Manually emitting particles==&lt;br /&gt;
&lt;br /&gt;
If you have done the things mentioned in the previous steps, then the particle emitter is automatically emitting particles after the time specified with delaymin and delaymax. If you don't want that particles are automatically emitted, then set emitautomatically to false and call emitter.emit() directly.&lt;br /&gt;
&lt;br /&gt;
==Controlling the particle emitter==&lt;br /&gt;
&lt;br /&gt;
You can modify the particle emitter at any time by using the &amp;quot;with (findimg(index))&amp;quot; construct again as mentioned in &amp;quot;Create a SHOWIMG&amp;quot; chapter. To change the position where the particles are emitted you can just change the position of the SHOWIMG, e.g. moving it to the player position so that the particles are always emitted where the player stands.&lt;br /&gt;
&lt;br /&gt;
It can also be interesting to watch the number of particles that the emitter has emitted, you can read the variables &amp;quot;currentparticlecount&amp;quot; and &amp;quot;emittedparticles&amp;quot; for that:&lt;br /&gt;
&lt;br /&gt;
  TParticleEmitter (TGraalVar):&lt;br /&gt;
    currentparticlecount - integer (read only) - for watching how many particles exist&lt;br /&gt;
    emittedparticles - integer (read only) - for seeing how many particles have been emitted in total&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Reference==&lt;br /&gt;
&lt;br /&gt;
  emitter&lt;br /&gt;
    attachposition - Tells whether or not x/y position of particles is relative to the position of the emitter. Also tells if particles should move when the emitter is moved.&lt;br /&gt;
    autorotation - Must be ture for making the particle heading into the direction it flies (rotation=angle)&lt;br /&gt;
    checkbelowterrain - If true, the particle will be destroyed if it falls below the terrain height (0 for flat GMaps)&lt;br /&gt;
    clippingbox - Format of {x1,y1,z1,x2,y2,z2}, particles that leave this box will be destroyed&lt;br /&gt;
    cliptoscreen - boolean - automatically resizes the clipping box to the visible area&lt;br /&gt;
    continueafterdestroy - boolean&lt;br /&gt;
    currentparticlecount - Current number of particles that exist&lt;br /&gt;
    delaymin - Minimum time before another particle is emitted&lt;br /&gt;
    delaymax - Maximum time before another particle is emitted&lt;br /&gt;
    emissionoffset - How far away from the emitter (or the level if attachposition=false) to emit particles. Format: {x,y,z}&lt;br /&gt;
    emittedparticles - Total number of particles that have been emitted&lt;br /&gt;
    firstinfront - Tells whether particles drawn after the first particle should draw on top or below the first&lt;br /&gt;
    maxparticles - Maximum number of particles that can exist at once&lt;br /&gt;
    nrofparticles - Number of particles to release at once&lt;br /&gt;
    isfrozen - Boolean, stops all particles if true&lt;br /&gt;
    wraptoclippingbox - boolean - if a particle leaves on one side, it appears on the other side (use with &amp;quot;cliptoscreen&amp;quot; option)&lt;br /&gt;
    dropemitter - TParticleEmitter - works exactly like the emitter itself and are used for emitting particles once a particle drops on the ground (rain drops) or the lifetime is over (for fireworks)&lt;br /&gt;
    dropwateremitter - TParticleEmitter - see dropemitter&lt;br /&gt;
 &lt;br /&gt;
    particle&lt;br /&gt;
      lifetime - Time (in seconds) before a particle is destroyed&lt;br /&gt;
      image - Image to use for the particle&lt;br /&gt;
      mode - Drawing mode of the image. (0 = add, 1 = replace, 2 = subtract, 3 = daynight) See changeimgmode&lt;br /&gt;
      alpha - Alpha transparency of a particle (0 = invisible, 1 = opaque)&lt;br /&gt;
      zoom - Zoomfactor of a particle&lt;br /&gt;
      angle - Movement angle for the particle (for x/y)&lt;br /&gt;
      zangle - Up/down movement angle for the particle&lt;br /&gt;
      speed - How many tiles or pixels the particle should move (depends on if its in a level or on the GUI)&lt;br /&gt;
      rotation - Angle for rotating the image (set autorotation=true to automatically set rotation=angle)&lt;br /&gt;
      spin - How much the image should be rotated each second, can be postive and negative&lt;br /&gt;
      stretchx - How much to stretch the particle image horizontally&lt;br /&gt;
      stretchy - How much to stretch the particle image vertically&lt;br /&gt;
      red, green, blue - Used to change color of particle&lt;br /&gt;
      dimension - Polygon dimension (2 or 3)&lt;br /&gt;
      movementvector - Format is {float,float,float}, a combination of x, y and z&lt;br /&gt;
 &lt;br /&gt;
    Emitter functions:&lt;br /&gt;
    addlocalmodifier(&amp;quot;string&amp;quot;,float,float,&amp;quot;string&amp;quot;,&amp;quot;string&amp;quot;,float,float)&lt;br /&gt;
      Parameters:&lt;br /&gt;
      First - Tells when to do an action&lt;br /&gt;
        once - Do it once&lt;br /&gt;
        range - Do the action during the range of time param2-param3&lt;br /&gt;
        impulse - Do it randomly&lt;br /&gt;
      Second - Tells the minimum time to wait before doing an action (except for 'range')&lt;br /&gt;
      Third - Tells the maximum time to wait before doing an action (except for 'range')&lt;br /&gt;
      Fourth - Tells what action to perform&lt;br /&gt;
        Everything under &amp;quot;particle&amp;quot; except for the following can be changed: image , text, ani, font, movementvector, style&lt;br /&gt;
        x - x position of the particle&lt;br /&gt;
        y - y position of the particle&lt;br /&gt;
        z - z position of the particle&lt;br /&gt;
        movex - How far the particle should move horizontally in its lifetime&lt;br /&gt;
        movey - How far the particle should move vertically in its lifetime&lt;br /&gt;
        movez - How far the particle should move above the ground in its lifetime&lt;br /&gt;
      Fifth - Tells what to do with parameters 6 and 7&lt;br /&gt;
        add - Add the amount (use negatives to subtract)&lt;br /&gt;
        replace - Set a new amount&lt;br /&gt;
        multiply - Multiply the amount (use negatives to divide)&lt;br /&gt;
      Sixth - Minimum amount&lt;br /&gt;
      Seventh - Maximum amount&lt;br /&gt;
    addglobalmodifier() - Same as addlocalmodifier, except it affects all particles at once&lt;br /&gt;
    addemitmodifier() - Same as addlocalmodifier, except it only affects emitter.particle&lt;br /&gt;
    addmod() - Used in conjunction with addlocalmodifier, same parameters except no parameters 1-3&lt;br /&gt;
    emit() - Do one emission&lt;br /&gt;
    removemodifiers() - Remove modifiers set&lt;br /&gt;
    removeparticles() - Remove particles&lt;br /&gt;
&lt;br /&gt;
==Examples==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
with (findimg(200)) {&lt;br /&gt;
  emitter.nrofparticles = 1;&lt;br /&gt;
  emitter.particle.image = &amp;quot;block.png&amp;quot;;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
with (findimg(200)) {&lt;br /&gt;
  // Chimney&lt;br /&gt;
  &lt;br /&gt;
  // Emitter attributes&lt;br /&gt;
  layer = 2;&lt;br /&gt;
  emitter.delaymin = 0.1;&lt;br /&gt;
  emitter.delaymax = 0.2;&lt;br /&gt;
  emitter.nrofparticles = 1;&lt;br /&gt;
&lt;br /&gt;
  // Basic particle attributes&lt;br /&gt;
  emitter.particle.lifetime = 3;&lt;br /&gt;
  emitter.particle.image = &amp;quot;g4_particle_smoke.png&amp;quot;;&lt;br /&gt;
  emitter.particle.mode = 1; // alpha transparent&lt;br /&gt;
  emitter.particle.alpha = 0.8;&lt;br /&gt;
  emitter.particle.zoom = 1;&lt;br /&gt;
&lt;br /&gt;
  // Movement&lt;br /&gt;
  emitter.particle.angle = pi / 2;&lt;br /&gt;
  emitter.particle.speed = 8;&lt;br /&gt;
  emitter.addglobalmodifier(&amp;quot;impulse&amp;quot;, 0.2, 0.2, &amp;quot;spin&amp;quot;, &amp;quot;multiply&amp;quot;, 0.9, 0.9);&lt;br /&gt;
  emitter.addlocalmodifier(&amp;quot;once&amp;quot;, 0, 0, &amp;quot;angle&amp;quot;, &amp;quot;add&amp;quot;, -0.2, 0.2);&lt;br /&gt;
  emitter.addlocalmodifier(&amp;quot;once&amp;quot;, 0, 0, &amp;quot;rotation&amp;quot;, &amp;quot;replace&amp;quot;, 0, 2*pi);&lt;br /&gt;
  emitter.addlocalmodifier(&amp;quot;range&amp;quot;, 1, 3, &amp;quot;alpha&amp;quot;, &amp;quot;replace&amp;quot;, 0.8, 0);&lt;br /&gt;
  emitter.addlocalmodifier(&amp;quot;range&amp;quot;, 0, 3, &amp;quot;zoom&amp;quot;, &amp;quot;add&amp;quot;, 0.25, 0.25);&lt;br /&gt;
  emitter.addlocalmodifier(&amp;quot;range&amp;quot;, 0, 0.5, &amp;quot;speed&amp;quot;, &amp;quot;replace&amp;quot;, 12, 4);&lt;br /&gt;
  emitter.addlocalmodifier(&amp;quot;range&amp;quot;, 0.5, 3, &amp;quot;speed&amp;quot;, &amp;quot;replace&amp;quot;, 4, 1.5);&lt;br /&gt;
  emitter.addlocalmodifier(&amp;quot;once&amp;quot;, 0, 0, &amp;quot;spin&amp;quot;, &amp;quot;replace&amp;quot;, 2, 4);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Useful articles==&lt;br /&gt;
[[Creation/Dev/Script/Client/TParticleEmitter]]&lt;br /&gt;
&lt;br /&gt;
[[Creation/Dev/Script/Client/TParticle]]&lt;br /&gt;
&lt;br /&gt;
[[Creation/Dev/Releases/Client/4.03]]&lt;/div&gt;</summary>
		<author><name>Fowlplay4</name></author>
	</entry>
	<entry>
		<id>https://graalonline.net/index.php?title=Particle_Engine&amp;diff=18595</id>
		<title>Particle Engine</title>
		<link rel="alternate" type="text/html" href="https://graalonline.net/index.php?title=Particle_Engine&amp;diff=18595"/>
		<updated>2011-07-06T03:03:04Z</updated>

		<summary type="html">&lt;p&gt;Fowlplay4: /* Configure emitter and particle */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Scripting Reference]]&lt;br /&gt;
==Introduction==&lt;br /&gt;
&lt;br /&gt;
The particle engine in Graal v4 is an extension of the SHOWIMG feature. With the command &amp;quot;showimg&amp;quot; scripts can display graphics, text, polygons and even animations on the screen. That command is mainly meant for client-side effects, but can also partially used on the serverside, and they can also be made visible on other player's screens. Graphics or texts displayed using this command will be called SHOWIMGs in this paper.&lt;br /&gt;
&lt;br /&gt;
Each SHOWIMG can be used as emitter for particles. That way all kind of scripts can use the new particle engine - just display a SHOWIMG and set the attributes of the SHOWIMG so that the particle emitter is activated and is emitting particles. A particle can be seen as an independent graphic object that is put at the position of the emitter once it is emitted, then travelling over the screen, and disappearing once its lifetime is over or it is outside the allowed screen bounds. Actually a particle is itself a SHOWIMG and can so be used for any kind of graphical effect, and can theoretically even be used as emitter for other particles.&lt;br /&gt;
&lt;br /&gt;
The reason for using a particle engine is speed: theoretically all graphical effects could be done by using scripts which call commands to display graphics or text. But often such effects contain several hundreds or even thousands of graphics, which must be moved and animated several times each second. If there are many objects using scripted particle effects that can slow down the game quite a lot. That's why it is possible in Graal v4 to use a built-in particle engine with many possible options to influence the look and behaviour of the particles so that most graphics effects can be displayed using that engine.&lt;br /&gt;
&lt;br /&gt;
==Create a SHOWIMG==&lt;br /&gt;
&lt;br /&gt;
To use the particle engine, you first need a SHOWIMG as emitter:&lt;br /&gt;
&lt;br /&gt;
  with (findimg(200)) {&lt;br /&gt;
    x = player.x;&lt;br /&gt;
    y = player.y;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
The function findimg(index) is searching for an existing SHOWIMG with the index of 200 and then using that for setting the other attributes, otherwise it is automatically creating a new SHOWIMG with index 200 for the current object (npc, or player if its a weapon/gui-script). Afterwards it is setting the position of the SHOWIMG to position of the player.&lt;br /&gt;
&lt;br /&gt;
==Configure emitter and particle==&lt;br /&gt;
&lt;br /&gt;
Once the SHOWIMG is setup, you need to configure the emitter and the default attributes of the particle that should be emitted:&lt;br /&gt;
&lt;br /&gt;
  with (findimg(200)) {&lt;br /&gt;
    x = player.x;&lt;br /&gt;
    y = player.y;&lt;br /&gt;
    emitter.attribute = value;&lt;br /&gt;
    emitter.particle.attribute = value;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
Possible attribute names are&lt;br /&gt;
(you can run &amp;quot;Graal4.exe -listscriptfunctions&amp;quot; to get the latest list of script functions):&lt;br /&gt;
&lt;br /&gt;
  TParticleEmitter (TGraalVar):&lt;br /&gt;
    attachposition - boolean - says if the particle is moved with the emitter (true), or can fly freely (false)&lt;br /&gt;
    autorotation - boolean - for making the particle heading into the direction it flies (rotation=angle)&lt;br /&gt;
    checkbelowterrain - boolean - destroys the particles if they are below the terrain height (or zero on flat maps)&lt;br /&gt;
    clippingbox - {xd1,yd1,zd1, xd2,yd2,zd2} - defines a box, if particles leave this box then they are destroyed&lt;br /&gt;
    cliptoscreen - boolean - automatically resizes the clipping box to the visible area&lt;br /&gt;
    continueafterdestroy - boolean&lt;br /&gt;
    delaymin - float - minimum delay till the next automatic emission (&amp;gt;= 0.05 seconds)&lt;br /&gt;
    delaymax - float - maximum delay till the next automatic emission&lt;br /&gt;
    emissionoffset - {xd,yd,zd} - by default {0,0,0}, says at which position the particles should be emitted, relative to the current emitter position&lt;br /&gt;
    emitautomatically - boolean - enables or disabled the automatic emission of particles after delaymin/delaymax time&lt;br /&gt;
    firstinfront - boolean - says if the first emitted particle should be displayed in front (true by default)&lt;br /&gt;
    maxparticles - integer - can be used to limit the total particle count&lt;br /&gt;
    nrofparticles - integer - specifies how many particles are emitted at once&lt;br /&gt;
    particle - object (read only) - defines the default attributes of the next emitted particle&lt;br /&gt;
    wraptoclippingbox - boolean - if a particle leaves on one side, it appears on the other side (use with &amp;quot;cliptoscreen&amp;quot; option)&lt;br /&gt;
    dropemitter - TParticleEmitter - works exactly like the emitter itself and are used for emitting particles once a particle drops on the ground (rain drops) or the lifetime is over (for fireworks)&lt;br /&gt;
    dropwateremitter - TParticleEmitter - see dropemitter&lt;br /&gt;
 &lt;br /&gt;
  TParticle (TGraalVar):&lt;br /&gt;
    angle - float - the movement angle of the particle (horizontally on the (x,y) plane)&lt;br /&gt;
    lifetime - float - in seconds, the particle will be destroyed when the lifetime is over&lt;br /&gt;
    movementvector - string - says in which direction the particles moves, this is a combination of angle and zangle&lt;br /&gt;
    speed - float - tiles per second&lt;br /&gt;
    spin - float - automatic rotation of the particle (radiants each second)&lt;br /&gt;
    zangle - float - the vertical movement angle - says if the particles goes up or down&lt;br /&gt;
 &lt;br /&gt;
    Particle attributes that are the same like for a SHOWIMG:&lt;br /&gt;
    alpha - float - transparency&lt;br /&gt;
    ani - string - a gani file (use &amp;quot;projectile.actor&amp;quot; for changing the attributes)&lt;br /&gt;
    blue - float - blue color value (0-1)&lt;br /&gt;
    code - string - the old representation as 'font@style@text'&lt;br /&gt;
    dimension - integer - polygon dimension (2 or 3)&lt;br /&gt;
    dir - integer - animation direction&lt;br /&gt;
    emitter - object (read only) - for specifying the attributes of a sub-emitter&lt;br /&gt;
    font - string - text font name&lt;br /&gt;
    green - float - green color value (0-1)&lt;br /&gt;
    image - string - image filename&lt;br /&gt;
    layer - integer - 4 or higher for particle which move in screen coordinates, below 4 for level coordinates&lt;br /&gt;
    mode - integer - the image drawing mode (0 - add, 1 - transparent, 2 - subtract, 3 - daynight)&lt;br /&gt;
    playerlook - boolean - if the animation should take it's head, body, sword, shield and attr[] from the owner (playerlook), set this to false if you want to set the images yourself by changing showimg.actor.head etc.&lt;br /&gt;
    polygon - object - array of coordinates for displaying a 2 or 3 dimensional polygon&lt;br /&gt;
    red - float - red color value (0-1)&lt;br /&gt;
    rotation - float - defines in which direction the particle graphics is facing&lt;br /&gt;
    stretchx - float - horizontal particle graphics stretch factor (default 1)&lt;br /&gt;
    stretchy - float - vertical particle graphics stretch factor (default 1)&lt;br /&gt;
    style - string - text style (e.g. &amp;quot;b&amp;quot; for bold text)&lt;br /&gt;
    text - string - a text that should be displayed on the SHOWIMG position&lt;br /&gt;
    zoom - float - zoom factor of the particle graphics or text&lt;br /&gt;
&lt;br /&gt;
==Add particle modifiers==&lt;br /&gt;
&lt;br /&gt;
Once you have setup the SHOWIMG and specified the attributes of the emitter and default particle, you can also specify particle modifiers so that the particles are not always flying into the same direction and look the same. There are 3 different functions, for modifying the default particle addemitmodifier(), for modifying all existing particles addglobalmodifier(), and for modifying the attributes for each particle individually addlocalmodifier(). The local modifiers are the most often used modifier.&lt;br /&gt;
Parameters are:&lt;br /&gt;
  modifier type - once,impulse or range - modifies the particle one time, periodically or only in the given time range&lt;br /&gt;
  rangemin - seconds, minimum delay until first modification or start of modification range (if modifier is &amp;quot;range&amp;quot;)&lt;br /&gt;
  rangemax - seconds, maximum delay until first modification or end of modification range (if modifier is &amp;quot;range&amp;quot;)&lt;br /&gt;
  variable - x,y,z,movex,movey,movez,angle,zangle,speed,rotation,spin,stretchx,stretchy,red,green,blue,alpha or zoom&lt;br /&gt;
  variable modification type - replace,add or multiply (if modifier type is &amp;quot;range&amp;quot; then only &amp;quot;replace&amp;quot; and &amp;quot;add&amp;quot; are valid)&lt;br /&gt;
  valuemin - range start of the random value or first value to set/add (if modifier is &amp;quot;range&amp;quot;)&lt;br /&gt;
  valuemax - range end of the random value or last value to set/add (if modifier is &amp;quot;range&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Those 3 functions addemitmodifier(), addglobalmodifier() and addlocalmodifier() are returning a modifier object which can be used to attach more variable modifications to the same impulse:&lt;br /&gt;
&lt;br /&gt;
  with (addlocalmodifier(&amp;quot;impulse&amp;quot;,1,2,&amp;quot;angle&amp;quot;,&amp;quot;replace&amp;quot;,0,pi)) {&lt;br /&gt;
    addmod(&amp;quot;zoom&amp;quot;,&amp;quot;add&amp;quot;,0.1,0.2);&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
This example is modifying the angle each 1-2 seconds, and at the same time it is zooming the particle so that it grows bigger. If you don't need to have the two modifiers act at the same moment, then you could have called addlocalmodifier(&amp;quot;impulse&amp;quot;,1,2,&amp;quot;zoom&amp;quot;,&amp;quot;add&amp;quot;,0.1,0.2) which looks quite the same, but is not guaranteed to happen at the same moment like the first modifier. Most of the time you don't need the addmod-function though.&lt;br /&gt;
&lt;br /&gt;
==Manually emitting particles==&lt;br /&gt;
&lt;br /&gt;
If you have done the things mentioned in the previous steps, then the particle emitter is automatically emitting particles after the time specified with delaymin and delaymax. If you don't want that particles are automatically emitted, then set emitautomatically to false and call emitter.emit() directly.&lt;br /&gt;
&lt;br /&gt;
==Controlling the particle emitter==&lt;br /&gt;
&lt;br /&gt;
You can modify the particle emitter at any time by using the &amp;quot;with (findimg(index))&amp;quot; construct again as mentioned in &amp;quot;Create a SHOWIMG&amp;quot; chapter. To change the position where the particles are emitted you can just change the position of the SHOWIMG, e.g. moving it to the player position so that the particles are always emitted where the player stands.&lt;br /&gt;
&lt;br /&gt;
It can also be interesting to watch the number of particles that the emitter has emitted, you can read the variables &amp;quot;currentparticlecount&amp;quot; and &amp;quot;emittedparticles&amp;quot; for that:&lt;br /&gt;
&lt;br /&gt;
  TParticleEmitter (TGraalVar):&lt;br /&gt;
    currentparticlecount - integer (read only) - for watching how many particles exist&lt;br /&gt;
    emittedparticles - integer (read only) - for seeing how many particles have been emitted in total&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Reference==&lt;br /&gt;
&lt;br /&gt;
  emitter&lt;br /&gt;
    attachposition - Tells whether or not x/y position of particles is relative to the position of the emitter. Also tells if particles should move when the emitter is moved.&lt;br /&gt;
    autorotation - Must be ture for making the particle heading into the direction it flies (rotation=angle)&lt;br /&gt;
    checkbelowterrain - If true, the particle will be destroyed if it falls below the terrain height (0 for flat GMaps)&lt;br /&gt;
    clippingbox - Format of {x1,y1,z1,x2,y2,z2}, particles that leave this box will be destroyed&lt;br /&gt;
    cliptoscreen - boolean - automatically resizes the clipping box to the visible area&lt;br /&gt;
    continueafterdestroy - boolean&lt;br /&gt;
    currentparticlecount - Current number of particles that exist&lt;br /&gt;
    delaymin - Minimum time before another particle is emitted&lt;br /&gt;
    delaymax - Maximum time before another particle is emitted&lt;br /&gt;
    emissionoffset - How far away from the emitter (or the level if attachposition=false) to emit particles. Format: {x,y,z}&lt;br /&gt;
    emittedparticles - Total number of particles that have been emitted&lt;br /&gt;
    firstinfront - Tells whether particles drawn after the first particle should draw on top or below the first&lt;br /&gt;
    maxparticles - Maximum number of particles that can exist at once&lt;br /&gt;
    nrofparticles - Number of particles to release at once&lt;br /&gt;
    isfrozen - Boolean, stops all particles if true&lt;br /&gt;
    wraptoclippingbox - boolean - if a particle leaves on one side, it appears on the other side (use with &amp;quot;cliptoscreen&amp;quot; option)&lt;br /&gt;
    dropemitter - TParticleEmitter - works exactly like the emitter itself and are used for emitting particles once a particle drops on the ground (rain drops) or the lifetime is over (for fireworks)&lt;br /&gt;
    dropwateremitter - TParticleEmitter - see dropemitter&lt;br /&gt;
&lt;br /&gt;
    particle&lt;br /&gt;
      lifetime - Time (in seconds) before a particle is destroyed&lt;br /&gt;
      image - Image to use for the particle&lt;br /&gt;
      mode - Drawing mode of the image. (0 = add, 1 = replace, 2 = subtract, 3 = daynight) See changeimgmode&lt;br /&gt;
      alpha - Alpha transparency of a particle (0 = invisible, 1 = opaque)&lt;br /&gt;
      zoom - Zoomfactor of a particle&lt;br /&gt;
      angle - Movement angle for the particle (for x/y)&lt;br /&gt;
      zangle - Up/down movement angle for the particle&lt;br /&gt;
      speed - How many tiles or pixels the particle should move (depends on if its in a level or on the GUI)&lt;br /&gt;
      rotation - Angle for rotating the image (set autorotation=true to automatically set rotation=angle)&lt;br /&gt;
      spin - How much the image should be rotated each second, can be postive and negative&lt;br /&gt;
      stretchx - How much to stretch the particle image horizontally&lt;br /&gt;
      stretchy - How much to stretch the particle image vertically&lt;br /&gt;
      red, green, blue - Used to change color of particle&lt;br /&gt;
      dimension - Polygon dimension (2 or 3)&lt;br /&gt;
      movementvector - Format is {float,float,float}, a combination of x, y and z&lt;br /&gt;
&lt;br /&gt;
    Emitter functions:&lt;br /&gt;
    addlocalmodifier(&amp;quot;string&amp;quot;,float,float,&amp;quot;string&amp;quot;,&amp;quot;string&amp;quot;,float,float)&lt;br /&gt;
      Parameters:&lt;br /&gt;
      First - Tells when to do an action&lt;br /&gt;
        once - Do it once&lt;br /&gt;
        range - Do the action during the range of time param2-param3&lt;br /&gt;
        impulse - Do it randomly&lt;br /&gt;
      Second - Tells the minimum time to wait before doing an action (except for 'range')&lt;br /&gt;
      Third - Tells the maximum time to wait before doing an action (except for 'range')&lt;br /&gt;
      Fourth - Tells what action to perform&lt;br /&gt;
        Everything under &amp;quot;particle&amp;quot; except for the following can be changed: image , text, ani, font, movementvector, style&lt;br /&gt;
        x - x position of the particle&lt;br /&gt;
        y - y position of the particle&lt;br /&gt;
        z - z position of the particle&lt;br /&gt;
        movex - How far the particle should move horizontally in its lifetime&lt;br /&gt;
        movey - How far the particle should move vertically in its lifetime&lt;br /&gt;
        movez - How far the particle should move above the ground in its lifetime&lt;br /&gt;
      Fifth - Tells what to do with parameters 6 and 7&lt;br /&gt;
        add - Add the amount (use negatives to subtract)&lt;br /&gt;
        replace - Set a new amount&lt;br /&gt;
        multiply - Multiply the amount (use negatives to divide)&lt;br /&gt;
      Sixth - Minimum amount&lt;br /&gt;
      Seventh - Maximum amount&lt;br /&gt;
    addglobalmodifier() - Same as addlocalmodifier, except it affects all particles at once&lt;br /&gt;
    addemitmodifier() - Same as addlocalmodifier, except it only affects emitter.particle&lt;br /&gt;
    addmod() - Used in conjunction with addlocalmodifier, same parameters except no parameters 1-3&lt;br /&gt;
    emit() - Do one emission&lt;br /&gt;
    removemodifiers() - Remove modifiers set&lt;br /&gt;
    removeparticles() - Remove particles&lt;br /&gt;
&lt;br /&gt;
==Examples==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
with (findimg(200)) {&lt;br /&gt;
  emitter.nrofparticles = 1;&lt;br /&gt;
  emitter.particle.image = &amp;quot;block.png&amp;quot;;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
with (findimg(200)) {&lt;br /&gt;
  // Chimney&lt;br /&gt;
  &lt;br /&gt;
  // Emitter attributes&lt;br /&gt;
  layer = 2;&lt;br /&gt;
  emitter.delaymin = 0.1;&lt;br /&gt;
  emitter.delaymax = 0.2;&lt;br /&gt;
  emitter.nrofparticles = 1;&lt;br /&gt;
&lt;br /&gt;
  // Basic particle attributes&lt;br /&gt;
  emitter.particle.lifetime = 3;&lt;br /&gt;
  emitter.particle.image = &amp;quot;g4_particle_smoke.png&amp;quot;;&lt;br /&gt;
  emitter.particle.mode = 1; // alpha transparent&lt;br /&gt;
  emitter.particle.alpha = 0.8;&lt;br /&gt;
  emitter.particle.zoom = 1;&lt;br /&gt;
&lt;br /&gt;
  // Movement&lt;br /&gt;
  emitter.particle.angle = pi / 2;&lt;br /&gt;
  emitter.particle.speed = 8;&lt;br /&gt;
  emitter.addglobalmodifier(&amp;quot;impulse&amp;quot;, 0.2, 0.2, &amp;quot;spin&amp;quot;, &amp;quot;multiply&amp;quot;, 0.9, 0.9);&lt;br /&gt;
  emitter.addlocalmodifier(&amp;quot;once&amp;quot;, 0, 0, &amp;quot;angle&amp;quot;, &amp;quot;add&amp;quot;, -0.2, 0.2);&lt;br /&gt;
  emitter.addlocalmodifier(&amp;quot;once&amp;quot;, 0, 0, &amp;quot;rotation&amp;quot;, &amp;quot;replace&amp;quot;, 0, 2*pi);&lt;br /&gt;
  emitter.addlocalmodifier(&amp;quot;range&amp;quot;, 1, 3, &amp;quot;alpha&amp;quot;, &amp;quot;replace&amp;quot;, 0.8, 0);&lt;br /&gt;
  emitter.addlocalmodifier(&amp;quot;range&amp;quot;, 0, 3, &amp;quot;zoom&amp;quot;, &amp;quot;add&amp;quot;, 0.25, 0.25);&lt;br /&gt;
  emitter.addlocalmodifier(&amp;quot;range&amp;quot;, 0, 0.5, &amp;quot;speed&amp;quot;, &amp;quot;replace&amp;quot;, 12, 4);&lt;br /&gt;
  emitter.addlocalmodifier(&amp;quot;range&amp;quot;, 0.5, 3, &amp;quot;speed&amp;quot;, &amp;quot;replace&amp;quot;, 4, 1.5);&lt;br /&gt;
  emitter.addlocalmodifier(&amp;quot;once&amp;quot;, 0, 0, &amp;quot;spin&amp;quot;, &amp;quot;replace&amp;quot;, 2, 4);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Useful articles==&lt;br /&gt;
[[Creation/Dev/Script/Client/TParticleEmitter]]&lt;br /&gt;
&lt;br /&gt;
[[Creation/Dev/Script/Client/TParticle]]&lt;br /&gt;
&lt;br /&gt;
[[Creation/Dev/Releases/Client/4.03]]&lt;/div&gt;</summary>
		<author><name>Fowlplay4</name></author>
	</entry>
	<entry>
		<id>https://graalonline.net/index.php?title=Creation/Dev/Script/Client/TServerPlayer&amp;diff=18226</id>
		<title>Creation/Dev/Script/Client/TServerPlayer</title>
		<link rel="alternate" type="text/html" href="https://graalonline.net/index.php?title=Creation/Dev/Script/Client/TServerPlayer&amp;diff=18226"/>
		<updated>2011-04-24T20:14:03Z</updated>

		<summary type="html">&lt;p&gt;Fowlplay4: /* Variables */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Scripting Reference]]&lt;br /&gt;
{{Script Object}}&lt;br /&gt;
Inherits [[Creation/Dev/Script/Client/TGaniObject|TGaniObject]].&lt;br /&gt;
&lt;br /&gt;
=Variables=&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;2&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
| '''Name'''&lt;br /&gt;
| '''Type'''&lt;br /&gt;
| '''Description'''&lt;br /&gt;
|-&lt;br /&gt;
| account&lt;br /&gt;
| string (read only)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| ap&lt;br /&gt;
| integer&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| attached&lt;br /&gt;
| boolean (read only)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| bombs&lt;br /&gt;
| integer&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| chat&lt;br /&gt;
| string&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| chatoffset&lt;br /&gt;
| string&lt;br /&gt;
| set to {deltax,deltay} if you want to change the position of chat and emoticons for bigger characters; chat only uses deltay&lt;br /&gt;
|-&lt;br /&gt;
| communityname&lt;br /&gt;
| string (read only)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| darts&lt;br /&gt;
| integer&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| fullhearts&lt;br /&gt;
| integer (read only)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| glovepower&lt;br /&gt;
| integer&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| gralats&lt;br /&gt;
| integer&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| guild&lt;br /&gt;
| string (read only)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| headimg&lt;br /&gt;
| string&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| headset&lt;br /&gt;
| integer&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| hearts&lt;br /&gt;
| float (read only)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| horseimg&lt;br /&gt;
| string (read only)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| hp&lt;br /&gt;
| float (read only)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| id&lt;br /&gt;
| integer (read only)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| isadmin&lt;br /&gt;
| boolean (read only)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| ischannel&lt;br /&gt;
| boolean (read only)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| ischannelopen&lt;br /&gt;
| boolean (read only)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| ischanneluser&lt;br /&gt;
| boolean (read only)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| isexternal&lt;br /&gt;
| boolean (read only)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| isfemale&lt;br /&gt;
| boolean (read only)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| isignoring&lt;br /&gt;
| boolean (read only)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| isloggedin&lt;br /&gt;
| boolean (read only)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| ismale&lt;br /&gt;
| boolean (read only)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| ismuted&lt;br /&gt;
| boolean (read only)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| ismuting&lt;br /&gt;
| boolean (read only)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| language&lt;br /&gt;
| string (read only)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| languagedomain&lt;br /&gt;
| string (read only)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| maxhp&lt;br /&gt;
| integer (read only)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| messagebubble&lt;br /&gt;
| integer (read only)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| mp&lt;br /&gt;
| integer&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| nick&lt;br /&gt;
| string&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| platform&lt;br /&gt;
| string (read only)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| rupees&lt;br /&gt;
| integer&lt;br /&gt;
| Use ''gralats'' instead&lt;br /&gt;
|-&lt;br /&gt;
| shieldimg&lt;br /&gt;
| string&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| shieldpower&lt;br /&gt;
| integer (read only)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| swordimg&lt;br /&gt;
| string&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| swordpower&lt;br /&gt;
| integer (read only)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| x&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| y&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Functions=&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;2&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
| '''Name'''&lt;br /&gt;
| '''Return Type'''&lt;br /&gt;
| '''Description'''&lt;br /&gt;
|-&lt;br /&gt;
| isguildpm()&lt;br /&gt;
| boolean&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| ismasspm()&lt;br /&gt;
| boolean&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| pmswaiting()&lt;br /&gt;
| boolean&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| openexternalhistory()&lt;br /&gt;
| boolean&lt;br /&gt;
| Open's PM History between you and the player.&lt;br /&gt;
|-&lt;br /&gt;
| openexternalpm(bool)&lt;br /&gt;
| boolean&lt;br /&gt;
| as parameter specify 'true' if it should display the pm sent by the player, otherwise always open a blank PM window.&lt;br /&gt;
|-&lt;br /&gt;
| showprofile()&lt;br /&gt;
| &lt;br /&gt;
| Open's the player's profile.&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Fowlplay4</name></author>
	</entry>
	<entry>
		<id>https://graalonline.net/index.php?title=Creation/Dev/Script/Client/TServerPlayer&amp;diff=18225</id>
		<title>Creation/Dev/Script/Client/TServerPlayer</title>
		<link rel="alternate" type="text/html" href="https://graalonline.net/index.php?title=Creation/Dev/Script/Client/TServerPlayer&amp;diff=18225"/>
		<updated>2011-04-24T20:11:29Z</updated>

		<summary type="html">&lt;p&gt;Fowlplay4: /* Functions */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Scripting Reference]]&lt;br /&gt;
{{Script Object}}&lt;br /&gt;
Inherits [[Creation/Dev/Script/Client/TGaniObject|TGaniObject]].&lt;br /&gt;
&lt;br /&gt;
=Variables=&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;2&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
| '''Name'''&lt;br /&gt;
| '''Type'''&lt;br /&gt;
| '''Description'''&lt;br /&gt;
|-&lt;br /&gt;
| account&lt;br /&gt;
| string (read only)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| ap&lt;br /&gt;
| integer&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| attached&lt;br /&gt;
| boolean (read only)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| bombs&lt;br /&gt;
| integer&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| chat&lt;br /&gt;
| string&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| darts&lt;br /&gt;
| integer&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| fullhearts&lt;br /&gt;
| integer (read only)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| glovepower&lt;br /&gt;
| integer&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| gralats&lt;br /&gt;
| integer&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| guild&lt;br /&gt;
| string (read only)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| headimg&lt;br /&gt;
| string&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| headset&lt;br /&gt;
| integer&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| hearts&lt;br /&gt;
| float (read only)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| horseimg&lt;br /&gt;
| string (read only)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| hp&lt;br /&gt;
| float (read only)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| id&lt;br /&gt;
| integer (read only)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| isadmin&lt;br /&gt;
| boolean (read only)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| ischannel&lt;br /&gt;
| boolean (read only)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| ischannelopen&lt;br /&gt;
| boolean (read only)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| ischanneluser&lt;br /&gt;
| boolean (read only)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| isexternal&lt;br /&gt;
| boolean (read only)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| isfemale&lt;br /&gt;
| boolean (read only)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| isignoring&lt;br /&gt;
| boolean (read only)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| isloggedin&lt;br /&gt;
| boolean (read only)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| ismale&lt;br /&gt;
| boolean (read only)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| ismuted&lt;br /&gt;
| boolean (read only)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| ismuting&lt;br /&gt;
| boolean (read only)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| language&lt;br /&gt;
| string (read only)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| languagedomain&lt;br /&gt;
| string (read only)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| maxhp&lt;br /&gt;
| integer (read only)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| messagebubble&lt;br /&gt;
| integer (read only)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| mp&lt;br /&gt;
| integer&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| nick&lt;br /&gt;
| string&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| platform&lt;br /&gt;
| string (read only)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| rupees&lt;br /&gt;
| integer&lt;br /&gt;
| Use ''gralats'' instead&lt;br /&gt;
|-&lt;br /&gt;
| shieldimg&lt;br /&gt;
| string&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| shieldpower&lt;br /&gt;
| integer (read only)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| swordimg&lt;br /&gt;
| string&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| swordpower&lt;br /&gt;
| integer (read only)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| x&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| y&lt;br /&gt;
| float&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Functions=&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;2&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
| '''Name'''&lt;br /&gt;
| '''Return Type'''&lt;br /&gt;
| '''Description'''&lt;br /&gt;
|-&lt;br /&gt;
| isguildpm()&lt;br /&gt;
| boolean&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| ismasspm()&lt;br /&gt;
| boolean&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| pmswaiting()&lt;br /&gt;
| boolean&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| openexternalhistory()&lt;br /&gt;
| boolean&lt;br /&gt;
| Open's PM History between you and the player.&lt;br /&gt;
|-&lt;br /&gt;
| openexternalpm(bool)&lt;br /&gt;
| boolean&lt;br /&gt;
| as parameter specify 'true' if it should display the pm sent by the player, otherwise always open a blank PM window.&lt;br /&gt;
|-&lt;br /&gt;
| showprofile()&lt;br /&gt;
| &lt;br /&gt;
| Open's the player's profile.&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Fowlplay4</name></author>
	</entry>
	<entry>
		<id>https://graalonline.net/index.php?title=Creation/Dev/Terrain_Generator&amp;diff=18157</id>
		<title>Creation/Dev/Terrain Generator</title>
		<link rel="alternate" type="text/html" href="https://graalonline.net/index.php?title=Creation/Dev/Terrain_Generator&amp;diff=18157"/>
		<updated>2011-04-15T21:06:39Z</updated>

		<summary type="html">&lt;p&gt;Fowlplay4: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Graal Kingdoms Development]][[Category:Scripting Reference]][[Category:Levels]]&lt;br /&gt;
The terrain generator tool can be used to generate&lt;br /&gt;
maps for Graal which use 3D terrain.&lt;br /&gt;
&lt;br /&gt;
[[Image:Terrain Generator.png|320px]]&lt;br /&gt;
==Usage==&lt;br /&gt;
Start TerrainGenerator.exe and click on 'Generate World' to see a map generated using fractal algorithms. To make an island click on the 'Islands' preset button first. For a more detailed view click on 'Show level details'. You can also directly edit the terrain by clicking on the grid and moving the mouse up/down.&lt;br /&gt;
&lt;br /&gt;
If you need additional help try reading the following guide [http://forums.graalonline.com/forums/showpost.php?p=1643518&amp;amp;postcount=3 How To Generate and Use a Terrain Map Offline].&lt;br /&gt;
&lt;br /&gt;
==Random seeds==&lt;br /&gt;
For finding the best map you will need to click several times on the 'Generate World' button. Once you have found a good one, you can write down the random seed that is displayed in the upper right corner of the window. Using that number you can always generate the map again - click on 'random', then enter the number.&lt;br /&gt;
&lt;br /&gt;
==Export==&lt;br /&gt;
Click on the save button (disc-icon) to save the generated world as .gmap file. If you enable 'Generate Graal levels' then the terrain generator will also generate all the needed level files and save them in the same folder.&lt;br /&gt;
&lt;br /&gt;
==Enable the map in Graal==&lt;br /&gt;
For offline tests, add the gmap name into a file loadgmaps.txt, and put that text file into the Graal folder. Next time you are starting Graal it will automatically load the gmap if it is in the current folder or in the Graal folders. To see nice tiles you must add a tile definition: add a line&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
picso.png,LEVELSTART,5,0,0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
to levels/tiledefs/tiledefsoffline.txt. LEVELSTART is the first part of the map name, e.g. 'myworld' in 'myworld.gmap'.&lt;br /&gt;
&lt;br /&gt;
==Using it online==&lt;br /&gt;
Upload the gmap, and add a line&lt;br /&gt;
  gmaps=LEVELSTART&lt;br /&gt;
to the serveroptions. You can put several maps into the same line, separate their names with commas. You can also add several gmaps= lines. Afterwards upload the sublevels. Now you should be able to enter the map. To set the good tiles you need to call the 'addtiledef' command in a weapon script. Add a weapon called '-Initialization' (the minus for not displaying it in the weapon list), set the script to this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
//#CLIENTSIDE&lt;br /&gt;
function onCreated() {&lt;br /&gt;
  addtiledef(&amp;quot;picso.png&amp;quot;, &amp;quot;LEVELSTART&amp;quot;, 5);&lt;br /&gt;
  loadmap(&amp;quot;GMAPNAME&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The 'loadmap' command is not really necessary, but can speed up the entering of maps because the map is preloaded. To add that weapon script to each player, add following script to the 'Control-NPC' of your server:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
function onActionPlayerOnline() {&lt;br /&gt;
  addweapon(&amp;quot;-Initialization&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Using different graphics==&lt;br /&gt;
If you want to replace picso.png with new tiles then just change the tiledefsoffline.txt file (for offline testing) and the '-Initialization' weapon to use your new tiles instead of 'picso.png'. Don't forget to upload the tiles to the server. Do '/find filename' on RC to see if the folder configuration is&lt;br /&gt;
correct and people can download the file.&lt;/div&gt;</summary>
		<author><name>Fowlplay4</name></author>
	</entry>
	<entry>
		<id>https://graalonline.net/index.php?title=Creation/Dev/Tileset&amp;diff=18133</id>
		<title>Creation/Dev/Tileset</title>
		<link rel="alternate" type="text/html" href="https://graalonline.net/index.php?title=Creation/Dev/Tileset&amp;diff=18133"/>
		<updated>2011-04-09T23:47:35Z</updated>

		<summary type="html">&lt;p&gt;Fowlplay4: /* Tileset Scripts */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Levels]][[Category:Scripting Reference]]&lt;br /&gt;
=Tileset=&lt;br /&gt;
A '''tileset''' is simply a set of [[tile]]s, standardly held in a large png. [[Scripter|Scripters]] can tell the [[Graal Client|Graal Client]] to use a given tileset - either replacing or editing the default pics1.png - through use of the addtiledef and addtiledef2 commands.&lt;br /&gt;
&lt;br /&gt;
With the addition of the addtiledef and addtiledef2 commands, new worlds on GraalOnline have used tilesets to create worlds that are different from the original GraalOnline.&lt;br /&gt;
&lt;br /&gt;
Developers whether in graphics, levels, or scripting can create their own tilesets to make a unique world, depending on which world someone wishes to created.&lt;br /&gt;
&lt;br /&gt;
Of course, creating custom tilesets from the default tileset of pics1.png can be quite difficult.  There's a number of questions on how the tiles work and where to place the tiles.  A few examples and templates have been created to help new developers create tilesets.&lt;br /&gt;
&lt;br /&gt;
==Tileset Scripts==&lt;br /&gt;
&lt;br /&gt;
 //GScript1 Script for use in the Graal Editor&lt;br /&gt;
 //#CLIENTSIDE&lt;br /&gt;
 if (created) { &lt;br /&gt;
   removetiledefs; &lt;br /&gt;
   addtiledef pics1.png,,0; &lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 //GScript2 version for use on servers&lt;br /&gt;
 //#CLIENTSIDE&lt;br /&gt;
 function onCreated() { &lt;br /&gt;
   addtiledef(&amp;quot;pics1.png&amp;quot;, &amp;quot;&amp;quot;, 0); &lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==Tile Type==&lt;br /&gt;
The following image is a legend composed of colors to tell how each tiles work and where those tiles can be placed.&lt;br /&gt;
[[Image:titletype.png|250px|left|thumb|]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Tile Templates==&lt;br /&gt;
The following image is for the tileset TYPE 0, which is the TYPE that pics1.png uses.  This is quite a complicated tileset, because the tiles are all over the place.  Developers who wish to use this tileset template are recommended to use the pics1.png tileset with modification to fit their needs, either editting the image or using addtiledef2.&lt;br /&gt;
[[Image:tiles_template.png|250px|left|thumb|]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The following image is for the tileset TYPE 1, which is a new tileset template that was created.  Worlds such as Era use this template for their tilesets.  This tileset is recommended for new themes worlds, which aren't similiar to the classic themed works such as N-Pulse.  This tileset makes more logical sense and organized with tiles being in sections, such as blocking tiles and non blocking tiles.&lt;br /&gt;
[[Image:type1.png|250px|left|thumb|]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
NOTE:  THE TEMPLATE'S COLORS ALL MATCH THE LEGEND PROVIDED, FOR BOTH TILE TYPES 0 AND 1.&lt;br /&gt;
&lt;br /&gt;
Malinko once created an example tileset for those who wish to learn the TYPE 1 tileset.  He themed it according to an edit of pics1.png he created because he wanted to give an example on how both classic and new worlds can create tilesets using TYPE 1.  This tileset template can be used for whatever world wished, as long as edits are made and it looks nice.  Note, this tileset was not finished, but was provided as an example.&lt;br /&gt;
[[Image:malinko_pics1-type1.png|250px|left|thumb|]]&lt;/div&gt;</summary>
		<author><name>Fowlplay4</name></author>
	</entry>
	<entry>
		<id>https://graalonline.net/index.php?title=Creation/Dev/Script/Clientside_Functions&amp;diff=18132</id>
		<title>Creation/Dev/Script/Clientside Functions</title>
		<link rel="alternate" type="text/html" href="https://graalonline.net/index.php?title=Creation/Dev/Script/Clientside_Functions&amp;diff=18132"/>
		<updated>2011-04-09T19:47:12Z</updated>

		<summary type="html">&lt;p&gt;Fowlplay4: /* Objects */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Scripting Reference]]&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;2&amp;quot; width=&amp;quot;50%&amp;quot;&lt;br /&gt;
|[R]&lt;br /&gt;
| denotes it is read-only.&lt;br /&gt;
|-&lt;br /&gt;
|[3D]&lt;br /&gt;
| denotes it is a Graal3D function.&lt;br /&gt;
|-&lt;br /&gt;
|[opengl]&lt;br /&gt;
| denotes it is functional only in opengl mode.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Variables==&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;2&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
| '''Variable'''&lt;br /&gt;
|width=&amp;quot;100px&amp;quot;|'''Type'''&lt;br /&gt;
| '''Notes'''&lt;br /&gt;
|-&lt;br /&gt;
| allfeatures&lt;br /&gt;
| ''integer [R]''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| allplayerscount&lt;br /&gt;
| ''integer [R]''&lt;br /&gt;
| Returns the count of all players on your playerlist, including IRC bots.&lt;br /&gt;
|-&lt;br /&gt;
| allrenderobjecttypes&lt;br /&gt;
| ''integer [R]''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| allstats &lt;br /&gt;
| ''integer [R]''&lt;br /&gt;
| Used with showstats() in order to show all stats.&lt;br /&gt;
|-&lt;br /&gt;
| canspin&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| Returns true of false if the player has spin attack.&lt;br /&gt;
|-&lt;br /&gt;
| carriesblackstone&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| Returns whether the player is carrying a black stone.&lt;br /&gt;
|-&lt;br /&gt;
| carriesbush&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| Returns whether the player is carrying a bush.&lt;br /&gt;
|-&lt;br /&gt;
| carriesnpc&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| Returns whether the player is carrying an NPC&lt;br /&gt;
|-&lt;br /&gt;
| carriessign&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| Returns whether the player is carrying a sign.&lt;br /&gt;
|-&lt;br /&gt;
| carriesstone&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| Returns whether the player is carrying a stone.&lt;br /&gt;
|-&lt;br /&gt;
| carriesvase&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| Returns whether the player is carrying a vase.&lt;br /&gt;
|-&lt;br /&gt;
| downloadfile&lt;br /&gt;
| ''string [R]''&lt;br /&gt;
| Returns the currently downloaded file.&lt;br /&gt;
|-&lt;br /&gt;
| downloadpos&lt;br /&gt;
| ''integer [R]''&lt;br /&gt;
| Returns the position of the currently downloaded file.&lt;br /&gt;
|-&lt;br /&gt;
| downloadsize&lt;br /&gt;
| ''integer [R]''&lt;br /&gt;
| Returns the size of the currently downloaded file.&lt;br /&gt;
|-&lt;br /&gt;
| editingmission&lt;br /&gt;
| ''boolean''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| emoticonchar&lt;br /&gt;
| ''string [R]''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| focusx&lt;br /&gt;
| ''float [R]''&lt;br /&gt;
| Position of the camera in tile units.&lt;br /&gt;
|-&lt;br /&gt;
| focusy&lt;br /&gt;
| ''float [R]''&lt;br /&gt;
| Position of the camera in tile units.&lt;br /&gt;
|-&lt;br /&gt;
| ghostsnear&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| If a ghost(observer) is in the same level as the player.&lt;br /&gt;
|-&lt;br /&gt;
| graalplugincookie&lt;br /&gt;
| ''string [R]''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| graalversion&lt;br /&gt;
| ''float [R]''&lt;br /&gt;
| Version of Graal the player is using.&lt;br /&gt;
|-&lt;br /&gt;
| gravity&lt;br /&gt;
| ''float''&lt;br /&gt;
| The gravity value that effects how fast projectiles fall. It universally effects all projectiles.&lt;br /&gt;
|-&lt;br /&gt;
| installedlanguages&lt;br /&gt;
| ''string [R]''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| isapplicationactive&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| Is Graal window active?&lt;br /&gt;
|-&lt;br /&gt;
| iscarrying&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| Returns true of false if the player is carrying something.&lt;br /&gt;
|-&lt;br /&gt;
| isfocused&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| isgraal3d&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| isgraalplugin&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| isleader&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| Player was the first to enter the level.&lt;br /&gt;
|-&lt;br /&gt;
| isonmap&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| Player is on a map.&lt;br /&gt;
|-&lt;br /&gt;
| isopengl&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| Graal is in opengl mode.&lt;br /&gt;
|-&lt;br /&gt;
| isrecordingvideo&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| Player is currently recording(alt+6) Graal.&lt;br /&gt;
|-&lt;br /&gt;
| jpegquality&lt;br /&gt;
| ''integer''&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| isgraalplugin&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| lastdownloadfile&lt;br /&gt;
| ''string [R]''&lt;br /&gt;
| The last file downloaded.&lt;br /&gt;
|-&lt;br /&gt;
| leftmousebutton&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| If the left mouse button is pressed.&lt;br /&gt;
|-&lt;br /&gt;
| leftmousebuttonglobal&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| If the left mouse button is pressed. Returns whether mouse is in focus of GUIs or not.&lt;br /&gt;
|-&lt;br /&gt;
| levelorgx&lt;br /&gt;
| ''float [R]''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| levelorgy&lt;br /&gt;
| ''float [R]''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| lighteffectsenabled&lt;br /&gt;
| ''boolean''&lt;br /&gt;
| Whether the player has their lights enabled via options.&lt;br /&gt;
|-&lt;br /&gt;
| middlemousebutton&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| If the middle mouse button is pressed&lt;br /&gt;
|-&lt;br /&gt;
| middlemousebuttonglobal&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| If the middle mouse button is pressed. Returns whether mouse is in focus of GUIs or not.&lt;br /&gt;
|-&lt;br /&gt;
| mousebuttons &lt;br /&gt;
| ''integer [R]''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| mousebuttonsglobal&lt;br /&gt;
| ''integer [R]''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| mousepitch&lt;br /&gt;
| ''float [R] [3D]''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| mousescreenx &lt;br /&gt;
| ''integer''&lt;br /&gt;
| Position of the mouse in the Graal screen, in pixel units on the x-axis.&lt;br /&gt;
|-&lt;br /&gt;
| mousescreeny &lt;br /&gt;
| ''integer''&lt;br /&gt;
| Position of the mouse in the Graal screen, in pixel units on the y-axis.&lt;br /&gt;
|-&lt;br /&gt;
| mousewheeldelta&lt;br /&gt;
| ''integer [R]''&lt;br /&gt;
| How much the mouse wheel has been scrolled.&lt;br /&gt;
|-&lt;br /&gt;
| mousex&lt;br /&gt;
| ''float''&lt;br /&gt;
| Position of the mouse in the level, in tile units, on the x-axis.&lt;br /&gt;
|-&lt;br /&gt;
| mousey&lt;br /&gt;
| ''float''&lt;br /&gt;
| Position of the mouse in the level, in tile units, on the y-axis&lt;br /&gt;
|-&lt;br /&gt;
| mouseyaw&lt;br /&gt;
| ''float [R] [3D]''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| musiclen &lt;br /&gt;
| ''integer [R]''&lt;br /&gt;
| Length of current playing '''MP3'''&lt;br /&gt;
|-&lt;br /&gt;
| musicpos&lt;br /&gt;
| ''integer [R]''&lt;br /&gt;
| Position of current playing '''MP3'''&lt;br /&gt;
|-&lt;br /&gt;
| particleeffectsenabled&lt;br /&gt;
| ''boolean''&lt;br /&gt;
| If player has particles enabled in their options.&lt;br /&gt;
|-&lt;br /&gt;
| rightmousebutton &lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| If the right mouse button is pressed&lt;br /&gt;
|-&lt;br /&gt;
| rightmousebuttonglobal &lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| If the right mouse button is pressed. Returns whether mouse is in focus of GUIs or not.&lt;br /&gt;
|-&lt;br /&gt;
| screenheight&lt;br /&gt;
| ''integer [R]''&lt;br /&gt;
| Height of the Graal screen in pixel units.&lt;br /&gt;
|-&lt;br /&gt;
| screenwidth&lt;br /&gt;
| ''integer [R]''&lt;br /&gt;
| Width of the Graal screen in pixel units.&lt;br /&gt;
|-&lt;br /&gt;
| scriptedcontrols &lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| scriptedplayerlist&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| Whether the player has the scripted playerlist enabled.&lt;br /&gt;
|-&lt;br /&gt;
| scriptlogwritetoreadonly&lt;br /&gt;
| ''boolean''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| selectedlistplayers&lt;br /&gt;
| ''object''&lt;br /&gt;
| An object of all players selected on the playerlist.&lt;br /&gt;
|-&lt;br /&gt;
| selectedsword &lt;br /&gt;
| ''integer''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| selectedweapon &lt;br /&gt;
| ''integer''&lt;br /&gt;
| Index of the currently selected weapon.&lt;br /&gt;
|-&lt;br /&gt;
| servername&lt;br /&gt;
| ''string [R]''&lt;br /&gt;
| Name of the server.&lt;br /&gt;
|-&lt;br /&gt;
| serverstartconnect &lt;br /&gt;
| ''string''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| serverstartparams &lt;br /&gt;
| ''string''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| shotbybaddy&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| If the player is shot by a baddy(default) arrow.&lt;br /&gt;
|-&lt;br /&gt;
| shotbyplayer&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| If the player is shot by another players arrow.&lt;br /&gt;
|-&lt;br /&gt;
| showterraingrid&lt;br /&gt;
| ''boolean''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| spritesimage&lt;br /&gt;
| ''string''&lt;br /&gt;
| Filename of the currently set sprite image.&lt;br /&gt;
|-&lt;br /&gt;
| statusimage&lt;br /&gt;
| ''string''&lt;br /&gt;
| Filename of the currently set state image.&lt;br /&gt;
|-&lt;br /&gt;
| timevar&lt;br /&gt;
| ''integer [R].''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| timevar2&lt;br /&gt;
| ''float [R]''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| timevar3&lt;br /&gt;
| ''float [R] [3D]''&lt;br /&gt;
| Synchronized time which works on both server and client-side, precision is milliseconds.&lt;br /&gt;
|-&lt;br /&gt;
| wasshooted&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| If the player is shot by a default arrow.&lt;br /&gt;
|-&lt;br /&gt;
| waterheight&lt;br /&gt;
| ''float''&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| weapons&lt;br /&gt;
| ''object [R]''&lt;br /&gt;
| all the players weapons, this includes login inherited weapons.&lt;br /&gt;
|-&lt;br /&gt;
| weaponsenabled&lt;br /&gt;
| ''boolean''&lt;br /&gt;
| If the players weapons are enabled via disableweapons()/enableweapons().&lt;br /&gt;
|-&lt;br /&gt;
| weathereffectsenabled&lt;br /&gt;
| ''boolean''&lt;br /&gt;
| If weather is enabled in the players options.&lt;br /&gt;
|-&lt;br /&gt;
| worldclockstopped&lt;br /&gt;
| ''boolean''&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| worldhour &lt;br /&gt;
| ''integer''&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| worldminute &lt;br /&gt;
| ''float''&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| worldminutesofday &lt;br /&gt;
| ''float''&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| worldrealsecondsperday &lt;br /&gt;
| ''float''&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Functions=&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;2&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
| '''Function'''&lt;br /&gt;
|width=&amp;quot;100px&amp;quot;|'''Type'''&lt;br /&gt;
| '''Notes'''&lt;br /&gt;
|-&lt;br /&gt;
| addcontrol(object)&lt;br /&gt;
|&lt;br /&gt;
| adds 'object' to the parent control.&lt;br /&gt;
|-&lt;br /&gt;
| addmaterialmapping(string, string)&lt;br /&gt;
| [3D]&lt;br /&gt;
| returns boolean.&lt;br /&gt;
|-&lt;br /&gt;
| addtiledef(string image, string prefix, int format)&lt;br /&gt;
| &lt;br /&gt;
| Adds a tileset definition with the supplied tileset image, level prefix and tileset format (0=pics1, 1=new world, 5=terrain).&lt;br /&gt;
|-&lt;br /&gt;
| addtiledef2(string image, string prefix, int x, int y)&lt;br /&gt;
| &lt;br /&gt;
| Overlays an image on the tileset with the supplied tileset image and level prefix. Parameters 'x' and 'y' represent the x and y position on the tileset of where to place the new image.&lt;br /&gt;
|-&lt;br /&gt;
| aindexof(float, array)&lt;br /&gt;
| &lt;br /&gt;
| Returns integer - the position of 'float' in the array.&lt;br /&gt;
|-&lt;br /&gt;
| arccos(float)&lt;br /&gt;
| &lt;br /&gt;
| Returns float - the arc cosine of 'float'.&lt;br /&gt;
|-&lt;br /&gt;
| arcsin(float)&lt;br /&gt;
| &lt;br /&gt;
| Returns float - the arc sine of 'float'.&lt;br /&gt;
|-&lt;br /&gt;
| attachplayertoobj(integer1, integer2)&lt;br /&gt;
| &lt;br /&gt;
| Attaches the player to the object with the matching ID where integer1 is the object type (currently only NPCs - 0) and integer2 is the ID of the desired object.&lt;br /&gt;
|-&lt;br /&gt;
| base64decode(string)&lt;br /&gt;
| &lt;br /&gt;
| Returns string - Decodes a base64 string.&lt;br /&gt;
|-&lt;br /&gt;
| base64encode(string)&lt;br /&gt;
| &lt;br /&gt;
| Returns string - Encodes string in to several characters of a 64 printable character set (A-Z, a-z, 0-9, + and /, while &amp;quot;=&amp;quot; is a special suffix code)&lt;br /&gt;
|-&lt;br /&gt;
| boxcontains(string, string)&lt;br /&gt;
| &lt;br /&gt;
| returns boolean.&lt;br /&gt;
|-&lt;br /&gt;
| boxcontainsvector(string, string)&lt;br /&gt;
| &lt;br /&gt;
| returns boolean&lt;br /&gt;
|-&lt;br /&gt;
| boxintersect(string, string)&lt;br /&gt;
| &lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| boxoverlaps(string, string)&lt;br /&gt;
| &lt;br /&gt;
| returns boolean&lt;br /&gt;
|-&lt;br /&gt;
| boxscale(string, string)&lt;br /&gt;
| &lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| callnpc(int index, string function)&lt;br /&gt;
| &lt;br /&gt;
| Calls a function from an NPC where 'index' is the NPC's index and 'function' is the function name.&lt;br /&gt;
|-&lt;br /&gt;
| callweapon(int index, string function)&lt;br /&gt;
| &lt;br /&gt;
| Calls a function from a weapon where 'index' is the weapon's index and 'function' is the function name.&lt;br /&gt;
|-&lt;br /&gt;
| castray({x,y,x}, {x,y,z}, string type)&lt;br /&gt;
| [3D]&lt;br /&gt;
| returns object - specify the start and end of the ray, and the object types (e.g. &amp;quot;staticts,terrain,interior&amp;quot;)&lt;br /&gt;
|-&lt;br /&gt;
| checksum(string)&lt;br /&gt;
| &lt;br /&gt;
| returns float&lt;br /&gt;
|-&lt;br /&gt;
| contains(string2, string1)&lt;br /&gt;
| &lt;br /&gt;
| returns boolean - True if string1 is contained within string2.&lt;br /&gt;
|-&lt;br /&gt;
| copystrings(string, string)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| cursoroff()&lt;br /&gt;
| [opengl]&lt;br /&gt;
| Disables the visible mouse cursor.&lt;br /&gt;
|-&lt;br /&gt;
| cursoron()&lt;br /&gt;
| [opengl]&lt;br /&gt;
| Enables the visible mouse cursor.&lt;br /&gt;
|-&lt;br /&gt;
| degtorad(float)&lt;br /&gt;
| &lt;br /&gt;
| returns float - Converts angle measurements of degrees to radians&lt;br /&gt;
|-&lt;br /&gt;
| detachplayer()&lt;br /&gt;
| &lt;br /&gt;
| Detaches a player from an attached object.&lt;br /&gt;
|-&lt;br /&gt;
| disabledefmovement()&lt;br /&gt;
| &lt;br /&gt;
| Disables the default movement system and controls(including weapons, sword, grab. Does not include Q-menu, pause, map...).&lt;br /&gt;
|-&lt;br /&gt;
| disablemap()&lt;br /&gt;
| &lt;br /&gt;
| Disables the default map (M).&lt;br /&gt;
|-&lt;br /&gt;
| disablepause()&lt;br /&gt;
| &lt;br /&gt;
| Disables the default pause (P).&lt;br /&gt;
|-&lt;br /&gt;
| disableselectweapons()&lt;br /&gt;
| &lt;br /&gt;
| Disables the default Q-menu (Q).&lt;br /&gt;
|-&lt;br /&gt;
| disableweapons()&lt;br /&gt;
| &lt;br /&gt;
| Disables the default sword (S) and weapons (D).&lt;br /&gt;
|-&lt;br /&gt;
| echo(string)&lt;br /&gt;
| &lt;br /&gt;
| echos 'string' to the debug window(F2).&lt;br /&gt;
|-&lt;br /&gt;
| enabledefmovement()&lt;br /&gt;
| &lt;br /&gt;
| Enables the default movement system.&lt;br /&gt;
|-&lt;br /&gt;
| [[Creation/Dev/Script/Functions/enablefeatures(int)|enablefeatures(int)]]&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| enablemap()&lt;br /&gt;
| &lt;br /&gt;
| Enables the default map system(M).&lt;br /&gt;
|-&lt;br /&gt;
| enablepause()&lt;br /&gt;
| &lt;br /&gt;
| Enables the default pause system(P).&lt;br /&gt;
|-&lt;br /&gt;
| enableselectweapons()&lt;br /&gt;
| &lt;br /&gt;
| Enables the default Q-menu(Q).&lt;br /&gt;
|-&lt;br /&gt;
| enableweapons()&lt;br /&gt;
| &lt;br /&gt;
| Enables the default sword(S) and weapons(D).&lt;br /&gt;
|-&lt;br /&gt;
| escapestring(string)&lt;br /&gt;
| &lt;br /&gt;
| returns string - adds \\ in front of &amp;quot;, ' and \\, and removes non-printable characters&lt;br /&gt;
|-&lt;br /&gt;
| explodebomb(integer)&lt;br /&gt;
| &lt;br /&gt;
| explodes the bomb with the id of 'integer'.&lt;br /&gt;
|-&lt;br /&gt;
| extractfilebase(string)&lt;br /&gt;
| &lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| extractfileext(string)&lt;br /&gt;
| &lt;br /&gt;
| Takes in a file name, and returns its extension. &lt;br /&gt;
|-&lt;br /&gt;
| extractfilepath(string)&lt;br /&gt;
| &lt;br /&gt;
| returns string &lt;br /&gt;
|-&lt;br /&gt;
| fileexists(string)&lt;br /&gt;
| &lt;br /&gt;
| returns boolean of whether the file 'str' exists in the players Graal/ directory(does not search subfolders).&lt;br /&gt;
|-&lt;br /&gt;
| filesize(string)&lt;br /&gt;
| &lt;br /&gt;
| Returns the size(int) of the file 'string' in the players Graal/ directory(does not search subfolders).&lt;br /&gt;
|-&lt;br /&gt;
| fileupdate(string)&lt;br /&gt;
| &lt;br /&gt;
| returns boolean&lt;br /&gt;
|-&lt;br /&gt;
| findani(string)&lt;br /&gt;
| &lt;br /&gt;
| returns object&lt;br /&gt;
|-&lt;br /&gt;
| findfiles(string, integer)&lt;br /&gt;
| &lt;br /&gt;
| returns object&lt;br /&gt;
|-&lt;br /&gt;
| findlevel(string)&lt;br /&gt;
| &lt;br /&gt;
| returns object&lt;br /&gt;
|-&lt;br /&gt;
| findnearestplayer(float1, float2)&lt;br /&gt;
| &lt;br /&gt;
| Returns the closest player's object relevant to float1 and float2.&lt;br /&gt;
|-&lt;br /&gt;
| findnearestplayers(float, float)&lt;br /&gt;
| &lt;br /&gt;
| Returns the closest players' object relevant to float1 and float2.&lt;br /&gt;
|-&lt;br /&gt;
| findnpcbyid(integer)&lt;br /&gt;
|&lt;br /&gt;
| Returns the NPC object with the ID of 'int'.&lt;br /&gt;
|-&lt;br /&gt;
| findpathinarray(obj1, obj2, obj3, obj4, obj5, int, int, int)&lt;br /&gt;
|&lt;br /&gt;
| Returns object - Simple path-finding: Obj1 being tiles that allow walking, Obj2 being tiles that don't allow walking, Obj3; tiles that shouldn't be allowed to walked on, Obj4; tiles that are able to be walked on, Obj5; tiles where we may stop. Integers are relevant to the startx, starty and maximum path length. - Arrays for allowed/non-allowed tiles are only checked if they aren't null.&lt;br /&gt;
|-&lt;br /&gt;
| findplayer(string)&lt;br /&gt;
|&lt;br /&gt;
| Returns the player object with the account equal to string.&lt;br /&gt;
|-&lt;br /&gt;
| findplayerbycommunityname(string)&lt;br /&gt;
|&lt;br /&gt;
| Returns the player object with the community name equal to string.&lt;br /&gt;
|-&lt;br /&gt;
| findplayerbyid(integer)&lt;br /&gt;
|&lt;br /&gt;
| Returns the player object with the ID equal to integer.&lt;br /&gt;
|-&lt;br /&gt;
| findweapon(string)&lt;br /&gt;
|&lt;br /&gt;
| Returns the weapon object with the name equal to string.&lt;br /&gt;
|-&lt;br /&gt;
| format(string, string, ...)&lt;br /&gt;
|&lt;br /&gt;
| See [[Creation/Dev/Output_Methods#format.28.29_function|format()]]. &lt;br /&gt;
|- &lt;br /&gt;
| format2(string, array)&lt;br /&gt;
| &lt;br /&gt;
| Like format(), except that this expects the format string and an array of variables instead of passing the variables as separate parameters.&lt;br /&gt;
|-&lt;br /&gt;
| freefileresources(string)&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| freezeplayer(float)&lt;br /&gt;
|&lt;br /&gt;
| Freezes the player for the number of seconds specified by float.&lt;br /&gt;
|-&lt;br /&gt;
| get3dobjectat(float, float, boolean)&lt;br /&gt;
| [3D]&lt;br /&gt;
| Gets the 3d object at the specified screen position, third parameter true if it should do box collision.&lt;br /&gt;
|-&lt;br /&gt;
| get3dobjectatmouse(boolean)&lt;br /&gt;
| [3D]&lt;br /&gt;
| Gets the 3d object at the mouse.  Parameter true if it should do box collision.&lt;br /&gt;
|-&lt;br /&gt;
| get3dobjectbyray(string, string)&lt;br /&gt;
| [3D]&lt;br /&gt;
| returns object&lt;br /&gt;
|-&lt;br /&gt;
| get3dobjectsbybox(string, string)&lt;br /&gt;
| [3D]&lt;br /&gt;
| 1st parameter defines the box {minx,miny,minz, maxx,maxy,maxz}.  Second parameter specifies the type of object to find (e.g. &amp;quot;staticts,terrain,interior&amp;quot;)&lt;br /&gt;
|-&lt;br /&gt;
| get3dscreenposition(string, boolean)&lt;br /&gt;
| [3D]&lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| getanglesfromvector({x, y, z})&lt;br /&gt;
|&lt;br /&gt;
| Returns an array that contains the angles the 3D vector {x, y, z} makes with the X-Y and X-Z axes.&lt;br /&gt;
|-&lt;br /&gt;
| getascii(string)&lt;br /&gt;
|&lt;br /&gt;
| Returns the [http://www.asciitable.com/ ascii] code for string.&lt;br /&gt;
|-&lt;br /&gt;
| getbasepackage()&lt;br /&gt;
|&lt;br /&gt;
| returns object&lt;br /&gt;
|-&lt;br /&gt;
| getboxcenter(string)&lt;br /&gt;
|&lt;br /&gt;
| Returns an array containing the center of a 3D box specified by string ({x0,y0,z0,x1,y1,z1,...}).&lt;br /&gt;
|-&lt;br /&gt;
| getdesktopresolution()&lt;br /&gt;
|&lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| getdisplaydevicelist()&lt;br /&gt;
|&lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| getdownloadedupdatepackagesize()&lt;br /&gt;
|&lt;br /&gt;
| Returns the size of the downloaded update package.&lt;br /&gt;
|-&lt;br /&gt;
| getdownloadingpackage()&lt;br /&gt;
|&lt;br /&gt;
| Returns a reference to current update package being downloaded.&lt;br /&gt;
|-&lt;br /&gt;
| getdownloadingpackagescount()&lt;br /&gt;
|&lt;br /&gt;
| Returns a count of the number of update packages to download.&lt;br /&gt;
|-&lt;br /&gt;
| getdropz(string)&lt;br /&gt;
|&lt;br /&gt;
| returns float&lt;br /&gt;
|-&lt;br /&gt;
| getExtension(string)&lt;br /&gt;
|&lt;br /&gt;
| This function is the same as extractFileExt().  Takes in a file name, and returns its extension.&lt;br /&gt;
|-&lt;br /&gt;
| getfilemodtime(string)&lt;br /&gt;
|&lt;br /&gt;
| Returns a timestamp of when the file was last modified (in unix time compatible to timevar2). This function accepts both exact file path and plain file name.&lt;br /&gt;
|-&lt;br /&gt;
| gethttprequest(string, integer, string)&lt;br /&gt;
| &lt;br /&gt;
| returns object (This function is the same as requestHttp())&lt;br /&gt;
|-&lt;br /&gt;
| getimgheight(string)&lt;br /&gt;
|&lt;br /&gt;
| Returns the height (in pixels) of the filename indicated by string.&lt;br /&gt;
|-&lt;br /&gt;
| getimgpixel(string, integer, integer)&lt;br /&gt;
|&lt;br /&gt;
| returns object&lt;br /&gt;
|-&lt;br /&gt;
| getimgwidth(string)&lt;br /&gt;
|&lt;br /&gt;
| Returns the width(in pixels) of the filename indicated by string.&lt;br /&gt;
|-&lt;br /&gt;
| getkeycode(string)&lt;br /&gt;
|&lt;br /&gt;
| Returns the keycode of the key indicated by string.  The keycode returned can be used in keydown2().&lt;br /&gt;
|-&lt;br /&gt;
| getloginaccountname()&lt;br /&gt;
|&lt;br /&gt;
| Presumably used for the login server.  Use player.account instead.&lt;br /&gt;
|-&lt;br /&gt;
| getmapx(string)&lt;br /&gt;
| &lt;br /&gt;
| Gets the x coordinate location in the gmap of the level indicated by string.  The top-left level starts at (0, 0).&lt;br /&gt;
|-&lt;br /&gt;
| getmapy(string)&lt;br /&gt;
|&lt;br /&gt;
| Gets the y coordinate location in the gmap of the level indicated by string.  The top-left level starts at (0, 0).&lt;br /&gt;
|-&lt;br /&gt;
| getmusicfilename()&lt;br /&gt;
|&lt;br /&gt;
| Returns the filename of the music currently playing.&lt;br /&gt;
|-&lt;br /&gt;
| getmusicstatus()&lt;br /&gt;
|&lt;br /&gt;
| Returns the status of the music currently playing.&lt;br /&gt;
|-&lt;br /&gt;
| getmusictags()&lt;br /&gt;
|&lt;br /&gt;
| Returns the tags of the music currently playing.  This function can be used to retrieve the title and artist info of the music.&lt;br /&gt;
|-&lt;br /&gt;
| getnearestplayer(float, float)&lt;br /&gt;
|&lt;br /&gt;
| Deprecated.  Use findnearestplayer() instead.&lt;br /&gt;
|-&lt;br /&gt;
| getnearestplayers(float, float)&lt;br /&gt;
|&lt;br /&gt;
| Deprecated.  Use findnearestplayers() instead.&lt;br /&gt;
|-&lt;br /&gt;
| getpackagesdownloadcomplete()&lt;br /&gt;
|&lt;br /&gt;
| Returns 'true' if the package downloads are complete.&lt;br /&gt;
|-&lt;br /&gt;
| getpackagesdownloaded()&lt;br /&gt;
|&lt;br /&gt;
| Returns 'true' if the most recent packages are already downloaded.&lt;br /&gt;
|-&lt;br /&gt;
| getplatform()&lt;br /&gt;
|&lt;br /&gt;
| Returns the platform that the player is using.  (i.e. windows, mac, or linux)&lt;br /&gt;
|-&lt;br /&gt;
| getresolutionlist(string)&lt;br /&gt;
|&lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| getservername()&lt;br /&gt;
|&lt;br /&gt;
| Returns the name of the server the player is currently connected to.&lt;br /&gt;
|-&lt;br /&gt;
| getstringkeys(string)&lt;br /&gt;
|&lt;br /&gt;
| Returns an array of the variables that begins with the supplied string.&lt;br /&gt;
|-&lt;br /&gt;
| getterraintexture(float, float)&lt;br /&gt;
|&lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| getterraintextureindex(float, float)&lt;br /&gt;
|&lt;br /&gt;
| returns integer&lt;br /&gt;
|-&lt;br /&gt;
| gettextheight(float zoom, string style, string font)&lt;br /&gt;
|&lt;br /&gt;
| returns integer - The height in pixels of the text with the given zoom, style and font.&lt;br /&gt;
|-&lt;br /&gt;
| gettextwidth(float zoom, string style, string font, string text)&lt;br /&gt;
|&lt;br /&gt;
| returns integer - The width of the text with the given zoom, style, font and text.&lt;br /&gt;
|-&lt;br /&gt;
| gettileset()&lt;br /&gt;
|&lt;br /&gt;
| returns string - the current main tileset (pics1.png, picso.png etc.)&lt;br /&gt;
|-&lt;br /&gt;
| gettilesettype()&lt;br /&gt;
|&lt;br /&gt;
| returns integer - the current tileset type (pics1.png:0, picso.png:5 etc.)&lt;br /&gt;
|-&lt;br /&gt;
| gettotalupdatepackagesize()&lt;br /&gt;
|&lt;br /&gt;
| returns integer - The total size of the update packages.&lt;br /&gt;
|-&lt;br /&gt;
| getupdatepackage(string name)&lt;br /&gt;
|&lt;br /&gt;
| returns object - A reference to the update package with the given name.&lt;br /&gt;
|-&lt;br /&gt;
| getvectorfromangles(float, float)&lt;br /&gt;
|&lt;br /&gt;
| returns string&lt;br /&gt;
|- &lt;br /&gt;
| getz(float, float)&lt;br /&gt;
|&lt;br /&gt;
| returns float&lt;br /&gt;
|-&lt;br /&gt;
| graalcontrolhasfocus(bool)&lt;br /&gt;
|&lt;br /&gt;
| returns boolean - Whether or not the graal control has focus.  Parameter says if it should also check if the chat bar has the focus&lt;br /&gt;
|-&lt;br /&gt;
| hideplayer(float time)&lt;br /&gt;
|&lt;br /&gt;
| Hides player for the specified amount of time.&lt;br /&gt;
|-&lt;br /&gt;
| hidesword(float time)&lt;br /&gt;
|&lt;br /&gt;
| Hides the player's sword for the specified amount of time.&lt;br /&gt;
|-&lt;br /&gt;
| hitnpc(int index, float halfhearts, float fromx, float fromy)&lt;br /&gt;
|&lt;br /&gt;
| Hit's npc with specified index causing the specified amount of halfhearts in damage. It also knocks back the npc based on the from X and Y coordinate passed to it.&lt;br /&gt;
|-&lt;br /&gt;
| hitobjects(float power, float x, float y)&lt;br /&gt;
|&lt;br /&gt;
| Hurts all the npcs with the specified power on the position passed to it.&lt;br /&gt;
|-&lt;br /&gt;
| hitplayer(int index, float halfhearts, float fromx, float fromy)&lt;br /&gt;
|&lt;br /&gt;
| Hit's player with specified index causing the specified amount of halfhearts in damage. It also knocks back the player based on the from X and Y coordinate passed to it. Use 0 as the index to hit your own player.&lt;br /&gt;
|-&lt;br /&gt;
| isadminguild(str guildname)&lt;br /&gt;
| &lt;br /&gt;
| returns boolean - If the passed guildname is an admin guild or not.&lt;br /&gt;
|-&lt;br /&gt;
| isclassloaded(str classname)&lt;br /&gt;
|&lt;br /&gt;
| returns boolean - If the passed classname is loaded for the client.&lt;br /&gt;
|-&lt;br /&gt;
| iscursoron()&lt;br /&gt;
|&lt;br /&gt;
| returns boolean - If the cursor is on or not.&lt;br /&gt;
|-&lt;br /&gt;
| isdevicefullscreenonly(str device)&lt;br /&gt;
|&lt;br /&gt;
| returns boolean - If the device is full screen only or not.&lt;br /&gt;
|-&lt;br /&gt;
| isdownloading(str filename)&lt;br /&gt;
|&lt;br /&gt;
| returns boolean - If a file is currently downloaded or requested from the server.&lt;br /&gt;
|-&lt;br /&gt;
| isdownloadingfiles()&lt;br /&gt;
|&lt;br /&gt;
| returns boolean - checks if Graal is currently downloading or requesting files from the server.&lt;br /&gt;
|-&lt;br /&gt;
| isfullscreenmode()&lt;br /&gt;
|&lt;br /&gt;
| returns boolean - checks if Graal is currently in fullscreen mode.&lt;br /&gt;
|-&lt;br /&gt;
| isimgrectangletransparent(str, int, int, int, int)&lt;br /&gt;
| &lt;br /&gt;
| returns boolean&lt;br /&gt;
|-&lt;br /&gt;
| ismusicplaying()&lt;br /&gt;
| &lt;br /&gt;
| returns boolean&lt;br /&gt;
|-&lt;br /&gt;
| isobject(str)&lt;br /&gt;
| &lt;br /&gt;
| returns boolean&lt;br /&gt;
|-&lt;br /&gt;
| issoundplaying(str)&lt;br /&gt;
| &lt;br /&gt;
| returns boolean&lt;br /&gt;
|-&lt;br /&gt;
| keydown(int)&lt;br /&gt;
| &lt;br /&gt;
| returns boolean&lt;br /&gt;
|-&lt;br /&gt;
| keydown2(int, bool)&lt;br /&gt;
| &lt;br /&gt;
| returns boolean&lt;br /&gt;
|-&lt;br /&gt;
| keydown2global(int, bool)&lt;br /&gt;
| &lt;br /&gt;
| returns boolean&lt;br /&gt;
|-&lt;br /&gt;
| keydownglobal(int)&lt;br /&gt;
| &lt;br /&gt;
| returns boolean&lt;br /&gt;
|-&lt;br /&gt;
| keyname(int)&lt;br /&gt;
| &lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| lay2(str, float, float)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| lightscene()&lt;br /&gt;
| &lt;br /&gt;
| returns boolean&lt;br /&gt;
|-&lt;br /&gt;
| loadclass(str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| loadmap(str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| loadtranslation(str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| lowercase(str)&lt;br /&gt;
| &lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| ltmfs(bool)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| ltmmax(float, float)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| ltmmin(float, float)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| makescreenshot2(str, int, float, float, float, int, int)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| matrixcreate(str, str)&lt;br /&gt;
| &lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| matrixcreatefromeuler(str)&lt;br /&gt;
| &lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| matrixmulpoint(str, str)&lt;br /&gt;
| &lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| matrixmultiply(str, str)&lt;br /&gt;
| &lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| matrixmulvector(str, str)&lt;br /&gt;
| &lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| md5(str)&lt;br /&gt;
| &lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| noplayerkilling()&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| onwall(float, float)&lt;br /&gt;
| &lt;br /&gt;
| returns boolean&lt;br /&gt;
|-&lt;br /&gt;
| onwall2(float, float, float, float)&lt;br /&gt;
| &lt;br /&gt;
| returns boolean&lt;br /&gt;
|-&lt;br /&gt;
| onwater(float, float)&lt;br /&gt;
| &lt;br /&gt;
| returns boolean&lt;br /&gt;
|-&lt;br /&gt;
| onwater2(float, float, float, float)&lt;br /&gt;
| &lt;br /&gt;
| returns boolean&lt;br /&gt;
|-&lt;br /&gt;
| opengraalurl(str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| openurl(str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| openurl2(str, int, int)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| play(str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| play2(str, float, float, float)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| play3d(str, bool, str, str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| playlooped(str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| playlooped2(str, float, float, float)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| popdialog()&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| pushdialog(obj)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| putleaps(int, float, float)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| radtodeg(float)&lt;br /&gt;
| &lt;br /&gt;
| returns float&lt;br /&gt;
|-&lt;br /&gt;
| randomstring(str)&lt;br /&gt;
| &lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| removetiledefs(str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| replaceani(str, str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| requestfiledeletion(str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| requestfilerename(str, str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| requestfilesmove(str, str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| requesthttp(str, int, str)&lt;br /&gt;
| &lt;br /&gt;
| returns object&lt;br /&gt;
|-&lt;br /&gt;
| requesttext(str, str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| requesturl(str)&lt;br /&gt;
| &lt;br /&gt;
| returns object&lt;br /&gt;
|-&lt;br /&gt;
| resetfocus()&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| rotationadd(str, str)&lt;br /&gt;
| &lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| rotationaddeuler(str, str)&lt;br /&gt;
| &lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| rotationfromeuler(str)&lt;br /&gt;
| &lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| rotationsub(str, str)&lt;br /&gt;
| &lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| rotationtoeuler(str)&lt;br /&gt;
| &lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| rungarbagecollector()&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| savelog(str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| say(int)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| say2(str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| screenx(float, float)&lt;br /&gt;
| &lt;br /&gt;
| returns integer&lt;br /&gt;
|-&lt;br /&gt;
| screeny(float, float)&lt;br /&gt;
| &lt;br /&gt;
| returns integer&lt;br /&gt;
|-&lt;br /&gt;
| selectfilefordownload(str)&lt;br /&gt;
| &lt;br /&gt;
| opens the select&lt;br /&gt;
|-&lt;br /&gt;
| selectfileforupload()&lt;br /&gt;
| &lt;br /&gt;
| opens the select&lt;br /&gt;
|-&lt;br /&gt;
| sendrpgmessage(str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| sendtext(str, str, params...)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| sendtorc(str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| serverwarp(str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| setani(str, str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| setbeltcolor(str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| setcoatcolor(str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| setcontentcontrol(obj)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| setcursor2(str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| seteffect(float, float, float, float)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| setfocus(float, float)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| setfogcolors(obj)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| setgender(str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| sethead(str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| setinteriorrendermode(int)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| setletters(str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| setmap(str, str, float, float)&lt;br /&gt;
| &lt;br /&gt;
| sets a text map (you can see the tiles of other levels but not the npcs), parameters are text file with level names, the map image (not used anymore), default x and y for the head icons; use gmaps if possible instead of this&lt;br /&gt;
|-&lt;br /&gt;
| setminimap(str, str, float, float)&lt;br /&gt;
| &lt;br /&gt;
| parameters are a text file with level names, the image, default x and y; use gmaps if possible instead of this&lt;br /&gt;
|-&lt;br /&gt;
| setmusicvolume(float, float)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| setplayerdir(str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| setshield(str, int)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| setshoecolor(str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| setshootparams(str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| setskincolor(str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| setskybandcolors(obj)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| setskybandsizes(obj)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| setsleevecolor(str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| setspritesimage(str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| setstatusimage(str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| setsuncolors(obj)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| setsword(str, int)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| setterrainrendermode(int)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| showstats(int)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| spyfire(int, int)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| startrecordvideo()&lt;br /&gt;
| &lt;br /&gt;
| returns boolean&lt;br /&gt;
|-&lt;br /&gt;
| stopmidi()&lt;br /&gt;
| &lt;br /&gt;
| same as stopmusic(), kept for compatibility&lt;br /&gt;
|-&lt;br /&gt;
| stopmusic()&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| stoprecordvideo()&lt;br /&gt;
| &lt;br /&gt;
| returns boolean&lt;br /&gt;
|-&lt;br /&gt;
| stopsound(str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| strcmp(str, str)&lt;br /&gt;
| &lt;br /&gt;
| returns integer&lt;br /&gt;
|-&lt;br /&gt;
| strequals(str, str)&lt;br /&gt;
| &lt;br /&gt;
| returns boolean&lt;br /&gt;
|-&lt;br /&gt;
| switchtoopengl()&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| synctimeofday(float, float)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| takeplayercarry()&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| takeplayerhorse()&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| testplayer(float, float)&lt;br /&gt;
| &lt;br /&gt;
| returns integer&lt;br /&gt;
|-&lt;br /&gt;
| trace(str)&lt;br /&gt;
| &lt;br /&gt;
| same as echo()&lt;br /&gt;
|-&lt;br /&gt;
| triggeraction(float, float, str, params...)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| triggerserver(str, str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| update3dterrain(float, float, float, float)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| updateboard(int, int, int, int)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| updateterrain()&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| updatevisibledistance()&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| uploadfile(str)&lt;br /&gt;
| &lt;br /&gt;
| uploads a file, you must provide the full path provided by a onDropFiles() event, also this will only work if the scripted RC has currently a file browser window open; once the file is uploaded an onFilesUploaded event will be invoked&lt;br /&gt;
|-&lt;br /&gt;
| uppercase(str)&lt;br /&gt;
| &lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| vectoradd(str, str)&lt;br /&gt;
| &lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| vectorcross(str, str)&lt;br /&gt;
| &lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| vectordist(str, str)&lt;br /&gt;
| &lt;br /&gt;
| returns float&lt;br /&gt;
|-&lt;br /&gt;
| vectordot(str, str)&lt;br /&gt;
| &lt;br /&gt;
| returns float&lt;br /&gt;
|-&lt;br /&gt;
| vectorlen(str)&lt;br /&gt;
| &lt;br /&gt;
| returns float&lt;br /&gt;
|-&lt;br /&gt;
| vectornormalize(str)&lt;br /&gt;
| &lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| vectororthobasis(str)&lt;br /&gt;
| &lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| vectorscale(str, float)&lt;br /&gt;
| &lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| vectorsub(str, str)&lt;br /&gt;
| &lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| worldx(float, float)&lt;br /&gt;
| &lt;br /&gt;
| returns float&lt;br /&gt;
|-&lt;br /&gt;
| worldy(float, float)&lt;br /&gt;
| &lt;br /&gt;
| returns float&lt;br /&gt;
|-&lt;br /&gt;
| wraptext(int, str, str)&lt;br /&gt;
| &lt;br /&gt;
| returns object&lt;br /&gt;
|-&lt;br /&gt;
| wraptext2(int, float, str, str)&lt;br /&gt;
| &lt;br /&gt;
| returns object&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Objects=&lt;br /&gt;
{{:Creation/Dev/Script/Client}}&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=GUI Objects=&lt;br /&gt;
GUI Objects are currently well documented starting here [[Creation/Dev/Script/Client/GuiControl]].&lt;br /&gt;
&lt;br /&gt;
=Preference Variables=&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;2&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
| '''Variable'''&lt;br /&gt;
|width=&amp;quot;100px&amp;quot;|'''Type'''&lt;br /&gt;
| '''Notes'''&lt;br /&gt;
|-&lt;br /&gt;
| $pref::audio::choosenvoicecodec&lt;br /&gt;
| &lt;br /&gt;
| integer&lt;br /&gt;
|-&lt;br /&gt;
| $pref::audio::microactivatebyvolume&lt;br /&gt;
| &lt;br /&gt;
| boolean&lt;br /&gt;
|-&lt;br /&gt;
| $pref::audio::microactivationlevel&lt;br /&gt;
| &lt;br /&gt;
| integer&lt;br /&gt;
|-&lt;br /&gt;
| $pref::audio::microinputdevice&lt;br /&gt;
| &lt;br /&gt;
| integer&lt;br /&gt;
|-&lt;br /&gt;
| $pref::audio::microon&lt;br /&gt;
| &lt;br /&gt;
| boolean&lt;br /&gt;
|-&lt;br /&gt;
| $pref::audio::microvolumefactor&lt;br /&gt;
| &lt;br /&gt;
| integer&lt;br /&gt;
|-&lt;br /&gt;
| $pref::audio::midivolume&lt;br /&gt;
| &lt;br /&gt;
| integer&lt;br /&gt;
|-&lt;br /&gt;
| $pref::audio::mp3volume&lt;br /&gt;
| &lt;br /&gt;
| integer&lt;br /&gt;
|-&lt;br /&gt;
| $pref::audio::radiovolume&lt;br /&gt;
| &lt;br /&gt;
| integer&lt;br /&gt;
|-&lt;br /&gt;
| $pref::audio::reversestereo&lt;br /&gt;
| &lt;br /&gt;
| boolean&lt;br /&gt;
|-&lt;br /&gt;
| $pref::audio::sfxvolume&lt;br /&gt;
| &lt;br /&gt;
| integer&lt;br /&gt;
|-&lt;br /&gt;
| $pref::audio::voicevolume&lt;br /&gt;
| &lt;br /&gt;
| integer&lt;br /&gt;
|-&lt;br /&gt;
| $pref::capture::allowbyscript&lt;br /&gt;
| &lt;br /&gt;
| boolean [R]&lt;br /&gt;
|-&lt;br /&gt;
| $pref::capture::area&lt;br /&gt;
| &lt;br /&gt;
| string&lt;br /&gt;
|-&lt;br /&gt;
| $pref::capture::audiobitrate&lt;br /&gt;
| &lt;br /&gt;
| integer&lt;br /&gt;
|-&lt;br /&gt;
| $pref::capture::disabledaynight&lt;br /&gt;
| &lt;br /&gt;
| boolean&lt;br /&gt;
|-&lt;br /&gt;
| $pref::capture::format&lt;br /&gt;
| &lt;br /&gt;
| string&lt;br /&gt;
|-&lt;br /&gt;
| $pref::capture::fps&lt;br /&gt;
| &lt;br /&gt;
| integer&lt;br /&gt;
|-&lt;br /&gt;
| $pref::capture::hideinterface&lt;br /&gt;
| &lt;br /&gt;
| boolean&lt;br /&gt;
|-&lt;br /&gt;
| $pref::capture::recordaudio&lt;br /&gt;
| &lt;br /&gt;
| boolean&lt;br /&gt;
|-&lt;br /&gt;
| $pref::capture::showmouse&lt;br /&gt;
| &lt;br /&gt;
| boolean&lt;br /&gt;
|-&lt;br /&gt;
| $pref::capture::size&lt;br /&gt;
| &lt;br /&gt;
| string&lt;br /&gt;
|-&lt;br /&gt;
| $pref::capture::videobitrate&lt;br /&gt;
| &lt;br /&gt;
| integer&lt;br /&gt;
|-&lt;br /&gt;
| $pref::graal::allowglobalpms&lt;br /&gt;
| &lt;br /&gt;
| boolean&lt;br /&gt;
|-&lt;br /&gt;
| $pref::graal::automapping&lt;br /&gt;
| &lt;br /&gt;
| boolean&lt;br /&gt;
|-&lt;br /&gt;
| $pref::graal::defaultfontname&lt;br /&gt;
| &lt;br /&gt;
| string&lt;br /&gt;
|-&lt;br /&gt;
| $pref::graal::defaultfontsize&lt;br /&gt;
| &lt;br /&gt;
| integer&lt;br /&gt;
|-&lt;br /&gt;
| $pref::graal::dontconnectlevels&lt;br /&gt;
| &lt;br /&gt;
| boolean&lt;br /&gt;
|-&lt;br /&gt;
| $pref::graal::dontloadlistheads&lt;br /&gt;
| &lt;br /&gt;
| boolean&lt;br /&gt;
|-&lt;br /&gt;
| $pref::graal::dontsavepasswords&lt;br /&gt;
| &lt;br /&gt;
| boolean&lt;br /&gt;
|-&lt;br /&gt;
| $pref::graal::dontsavepms&lt;br /&gt;
| &lt;br /&gt;
| boolean&lt;br /&gt;
|-&lt;br /&gt;
| $pref::graal::fixedport&lt;br /&gt;
| &lt;br /&gt;
| boolean&lt;br /&gt;
|-&lt;br /&gt;
| $pref::graal::fixedudpport&lt;br /&gt;
| &lt;br /&gt;
| integer&lt;br /&gt;
|-&lt;br /&gt;
| $pref::graal::language&lt;br /&gt;
| &lt;br /&gt;
| string&lt;br /&gt;
|-&lt;br /&gt;
| $pref::graal::limitnicknames&lt;br /&gt;
| &lt;br /&gt;
| boolean&lt;br /&gt;
|-&lt;br /&gt;
| $pref::graal::loadbuddylistfromserver&lt;br /&gt;
| &lt;br /&gt;
| boolean&lt;br /&gt;
|-&lt;br /&gt;
| $pref::graal::nicknamelimit&lt;br /&gt;
| &lt;br /&gt;
| integer&lt;br /&gt;
|-&lt;br /&gt;
| $pref::graal::nomassmessages&lt;br /&gt;
| &lt;br /&gt;
| boolean&lt;br /&gt;
|-&lt;br /&gt;
| $pref::graal::notoalls&lt;br /&gt;
| &lt;br /&gt;
| boolean&lt;br /&gt;
|-&lt;br /&gt;
| $pref::graal::noudp&lt;br /&gt;
| &lt;br /&gt;
| boolean&lt;br /&gt;
|-&lt;br /&gt;
| $pref::graal::showyourselfonbuddylists&lt;br /&gt;
| &lt;br /&gt;
| boolean&lt;br /&gt;
|-&lt;br /&gt;
| $pref::input::mousesensitivity&lt;br /&gt;
| &lt;br /&gt;
| float&lt;br /&gt;
|-&lt;br /&gt;
| $pref::interior::lockarrays&lt;br /&gt;
| &lt;br /&gt;
| boolean&lt;br /&gt;
|-&lt;br /&gt;
| $pref::video::defaultguistyle&lt;br /&gt;
| &lt;br /&gt;
| string&lt;br /&gt;
|-&lt;br /&gt;
| $pref::video::detailfactor&lt;br /&gt;
| &lt;br /&gt;
| float&lt;br /&gt;
|-&lt;br /&gt;
| $pref::video::fogdistance&lt;br /&gt;
| &lt;br /&gt;
| float&lt;br /&gt;
|-&lt;br /&gt;
| $pref::video::fullscreenmode&lt;br /&gt;
| &lt;br /&gt;
| string&lt;br /&gt;
|-&lt;br /&gt;
| $pref::video::resolution&lt;br /&gt;
| &lt;br /&gt;
| integer&lt;br /&gt;
|-&lt;br /&gt;
| $pref::video::screenshotformat&lt;br /&gt;
| &lt;br /&gt;
| string&lt;br /&gt;
|-&lt;br /&gt;
| $pref::video::visibledistance&lt;br /&gt;
| &lt;br /&gt;
| float&lt;br /&gt;
|-&lt;br /&gt;
| $pref::video::windowmode&lt;br /&gt;
| &lt;br /&gt;
| string&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Fowlplay4</name></author>
	</entry>
	<entry>
		<id>https://graalonline.net/index.php?title=Creation/Dev/Script/Clientside_Functions&amp;diff=18131</id>
		<title>Creation/Dev/Script/Clientside Functions</title>
		<link rel="alternate" type="text/html" href="https://graalonline.net/index.php?title=Creation/Dev/Script/Clientside_Functions&amp;diff=18131"/>
		<updated>2011-04-09T19:46:54Z</updated>

		<summary type="html">&lt;p&gt;Fowlplay4: /* Functions */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Scripting Reference]]&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;2&amp;quot; width=&amp;quot;50%&amp;quot;&lt;br /&gt;
|[R]&lt;br /&gt;
| denotes it is read-only.&lt;br /&gt;
|-&lt;br /&gt;
|[3D]&lt;br /&gt;
| denotes it is a Graal3D function.&lt;br /&gt;
|-&lt;br /&gt;
|[opengl]&lt;br /&gt;
| denotes it is functional only in opengl mode.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Variables==&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;2&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
| '''Variable'''&lt;br /&gt;
|width=&amp;quot;100px&amp;quot;|'''Type'''&lt;br /&gt;
| '''Notes'''&lt;br /&gt;
|-&lt;br /&gt;
| allfeatures&lt;br /&gt;
| ''integer [R]''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| allplayerscount&lt;br /&gt;
| ''integer [R]''&lt;br /&gt;
| Returns the count of all players on your playerlist, including IRC bots.&lt;br /&gt;
|-&lt;br /&gt;
| allrenderobjecttypes&lt;br /&gt;
| ''integer [R]''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| allstats &lt;br /&gt;
| ''integer [R]''&lt;br /&gt;
| Used with showstats() in order to show all stats.&lt;br /&gt;
|-&lt;br /&gt;
| canspin&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| Returns true of false if the player has spin attack.&lt;br /&gt;
|-&lt;br /&gt;
| carriesblackstone&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| Returns whether the player is carrying a black stone.&lt;br /&gt;
|-&lt;br /&gt;
| carriesbush&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| Returns whether the player is carrying a bush.&lt;br /&gt;
|-&lt;br /&gt;
| carriesnpc&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| Returns whether the player is carrying an NPC&lt;br /&gt;
|-&lt;br /&gt;
| carriessign&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| Returns whether the player is carrying a sign.&lt;br /&gt;
|-&lt;br /&gt;
| carriesstone&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| Returns whether the player is carrying a stone.&lt;br /&gt;
|-&lt;br /&gt;
| carriesvase&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| Returns whether the player is carrying a vase.&lt;br /&gt;
|-&lt;br /&gt;
| downloadfile&lt;br /&gt;
| ''string [R]''&lt;br /&gt;
| Returns the currently downloaded file.&lt;br /&gt;
|-&lt;br /&gt;
| downloadpos&lt;br /&gt;
| ''integer [R]''&lt;br /&gt;
| Returns the position of the currently downloaded file.&lt;br /&gt;
|-&lt;br /&gt;
| downloadsize&lt;br /&gt;
| ''integer [R]''&lt;br /&gt;
| Returns the size of the currently downloaded file.&lt;br /&gt;
|-&lt;br /&gt;
| editingmission&lt;br /&gt;
| ''boolean''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| emoticonchar&lt;br /&gt;
| ''string [R]''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| focusx&lt;br /&gt;
| ''float [R]''&lt;br /&gt;
| Position of the camera in tile units.&lt;br /&gt;
|-&lt;br /&gt;
| focusy&lt;br /&gt;
| ''float [R]''&lt;br /&gt;
| Position of the camera in tile units.&lt;br /&gt;
|-&lt;br /&gt;
| ghostsnear&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| If a ghost(observer) is in the same level as the player.&lt;br /&gt;
|-&lt;br /&gt;
| graalplugincookie&lt;br /&gt;
| ''string [R]''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| graalversion&lt;br /&gt;
| ''float [R]''&lt;br /&gt;
| Version of Graal the player is using.&lt;br /&gt;
|-&lt;br /&gt;
| gravity&lt;br /&gt;
| ''float''&lt;br /&gt;
| The gravity value that effects how fast projectiles fall. It universally effects all projectiles.&lt;br /&gt;
|-&lt;br /&gt;
| installedlanguages&lt;br /&gt;
| ''string [R]''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| isapplicationactive&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| Is Graal window active?&lt;br /&gt;
|-&lt;br /&gt;
| iscarrying&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| Returns true of false if the player is carrying something.&lt;br /&gt;
|-&lt;br /&gt;
| isfocused&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| isgraal3d&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| isgraalplugin&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| isleader&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| Player was the first to enter the level.&lt;br /&gt;
|-&lt;br /&gt;
| isonmap&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| Player is on a map.&lt;br /&gt;
|-&lt;br /&gt;
| isopengl&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| Graal is in opengl mode.&lt;br /&gt;
|-&lt;br /&gt;
| isrecordingvideo&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| Player is currently recording(alt+6) Graal.&lt;br /&gt;
|-&lt;br /&gt;
| jpegquality&lt;br /&gt;
| ''integer''&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| isgraalplugin&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| lastdownloadfile&lt;br /&gt;
| ''string [R]''&lt;br /&gt;
| The last file downloaded.&lt;br /&gt;
|-&lt;br /&gt;
| leftmousebutton&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| If the left mouse button is pressed.&lt;br /&gt;
|-&lt;br /&gt;
| leftmousebuttonglobal&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| If the left mouse button is pressed. Returns whether mouse is in focus of GUIs or not.&lt;br /&gt;
|-&lt;br /&gt;
| levelorgx&lt;br /&gt;
| ''float [R]''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| levelorgy&lt;br /&gt;
| ''float [R]''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| lighteffectsenabled&lt;br /&gt;
| ''boolean''&lt;br /&gt;
| Whether the player has their lights enabled via options.&lt;br /&gt;
|-&lt;br /&gt;
| middlemousebutton&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| If the middle mouse button is pressed&lt;br /&gt;
|-&lt;br /&gt;
| middlemousebuttonglobal&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| If the middle mouse button is pressed. Returns whether mouse is in focus of GUIs or not.&lt;br /&gt;
|-&lt;br /&gt;
| mousebuttons &lt;br /&gt;
| ''integer [R]''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| mousebuttonsglobal&lt;br /&gt;
| ''integer [R]''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| mousepitch&lt;br /&gt;
| ''float [R] [3D]''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| mousescreenx &lt;br /&gt;
| ''integer''&lt;br /&gt;
| Position of the mouse in the Graal screen, in pixel units on the x-axis.&lt;br /&gt;
|-&lt;br /&gt;
| mousescreeny &lt;br /&gt;
| ''integer''&lt;br /&gt;
| Position of the mouse in the Graal screen, in pixel units on the y-axis.&lt;br /&gt;
|-&lt;br /&gt;
| mousewheeldelta&lt;br /&gt;
| ''integer [R]''&lt;br /&gt;
| How much the mouse wheel has been scrolled.&lt;br /&gt;
|-&lt;br /&gt;
| mousex&lt;br /&gt;
| ''float''&lt;br /&gt;
| Position of the mouse in the level, in tile units, on the x-axis.&lt;br /&gt;
|-&lt;br /&gt;
| mousey&lt;br /&gt;
| ''float''&lt;br /&gt;
| Position of the mouse in the level, in tile units, on the y-axis&lt;br /&gt;
|-&lt;br /&gt;
| mouseyaw&lt;br /&gt;
| ''float [R] [3D]''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| musiclen &lt;br /&gt;
| ''integer [R]''&lt;br /&gt;
| Length of current playing '''MP3'''&lt;br /&gt;
|-&lt;br /&gt;
| musicpos&lt;br /&gt;
| ''integer [R]''&lt;br /&gt;
| Position of current playing '''MP3'''&lt;br /&gt;
|-&lt;br /&gt;
| particleeffectsenabled&lt;br /&gt;
| ''boolean''&lt;br /&gt;
| If player has particles enabled in their options.&lt;br /&gt;
|-&lt;br /&gt;
| rightmousebutton &lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| If the right mouse button is pressed&lt;br /&gt;
|-&lt;br /&gt;
| rightmousebuttonglobal &lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| If the right mouse button is pressed. Returns whether mouse is in focus of GUIs or not.&lt;br /&gt;
|-&lt;br /&gt;
| screenheight&lt;br /&gt;
| ''integer [R]''&lt;br /&gt;
| Height of the Graal screen in pixel units.&lt;br /&gt;
|-&lt;br /&gt;
| screenwidth&lt;br /&gt;
| ''integer [R]''&lt;br /&gt;
| Width of the Graal screen in pixel units.&lt;br /&gt;
|-&lt;br /&gt;
| scriptedcontrols &lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| scriptedplayerlist&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| Whether the player has the scripted playerlist enabled.&lt;br /&gt;
|-&lt;br /&gt;
| scriptlogwritetoreadonly&lt;br /&gt;
| ''boolean''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| selectedlistplayers&lt;br /&gt;
| ''object''&lt;br /&gt;
| An object of all players selected on the playerlist.&lt;br /&gt;
|-&lt;br /&gt;
| selectedsword &lt;br /&gt;
| ''integer''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| selectedweapon &lt;br /&gt;
| ''integer''&lt;br /&gt;
| Index of the currently selected weapon.&lt;br /&gt;
|-&lt;br /&gt;
| servername&lt;br /&gt;
| ''string [R]''&lt;br /&gt;
| Name of the server.&lt;br /&gt;
|-&lt;br /&gt;
| serverstartconnect &lt;br /&gt;
| ''string''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| serverstartparams &lt;br /&gt;
| ''string''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| shotbybaddy&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| If the player is shot by a baddy(default) arrow.&lt;br /&gt;
|-&lt;br /&gt;
| shotbyplayer&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| If the player is shot by another players arrow.&lt;br /&gt;
|-&lt;br /&gt;
| showterraingrid&lt;br /&gt;
| ''boolean''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| spritesimage&lt;br /&gt;
| ''string''&lt;br /&gt;
| Filename of the currently set sprite image.&lt;br /&gt;
|-&lt;br /&gt;
| statusimage&lt;br /&gt;
| ''string''&lt;br /&gt;
| Filename of the currently set state image.&lt;br /&gt;
|-&lt;br /&gt;
| timevar&lt;br /&gt;
| ''integer [R].''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| timevar2&lt;br /&gt;
| ''float [R]''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| timevar3&lt;br /&gt;
| ''float [R] [3D]''&lt;br /&gt;
| Synchronized time which works on both server and client-side, precision is milliseconds.&lt;br /&gt;
|-&lt;br /&gt;
| wasshooted&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| If the player is shot by a default arrow.&lt;br /&gt;
|-&lt;br /&gt;
| waterheight&lt;br /&gt;
| ''float''&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| weapons&lt;br /&gt;
| ''object [R]''&lt;br /&gt;
| all the players weapons, this includes login inherited weapons.&lt;br /&gt;
|-&lt;br /&gt;
| weaponsenabled&lt;br /&gt;
| ''boolean''&lt;br /&gt;
| If the players weapons are enabled via disableweapons()/enableweapons().&lt;br /&gt;
|-&lt;br /&gt;
| weathereffectsenabled&lt;br /&gt;
| ''boolean''&lt;br /&gt;
| If weather is enabled in the players options.&lt;br /&gt;
|-&lt;br /&gt;
| worldclockstopped&lt;br /&gt;
| ''boolean''&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| worldhour &lt;br /&gt;
| ''integer''&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| worldminute &lt;br /&gt;
| ''float''&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| worldminutesofday &lt;br /&gt;
| ''float''&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| worldrealsecondsperday &lt;br /&gt;
| ''float''&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Functions=&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;2&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
| '''Function'''&lt;br /&gt;
|width=&amp;quot;100px&amp;quot;|'''Type'''&lt;br /&gt;
| '''Notes'''&lt;br /&gt;
|-&lt;br /&gt;
| addcontrol(object)&lt;br /&gt;
|&lt;br /&gt;
| adds 'object' to the parent control.&lt;br /&gt;
|-&lt;br /&gt;
| addmaterialmapping(string, string)&lt;br /&gt;
| [3D]&lt;br /&gt;
| returns boolean.&lt;br /&gt;
|-&lt;br /&gt;
| addtiledef(string image, string prefix, int format)&lt;br /&gt;
| &lt;br /&gt;
| Adds a tileset definition with the supplied tileset image, level prefix and tileset format (0=pics1, 1=new world, 5=terrain).&lt;br /&gt;
|-&lt;br /&gt;
| addtiledef2(string image, string prefix, int x, int y)&lt;br /&gt;
| &lt;br /&gt;
| Overlays an image on the tileset with the supplied tileset image and level prefix. Parameters 'x' and 'y' represent the x and y position on the tileset of where to place the new image.&lt;br /&gt;
|-&lt;br /&gt;
| aindexof(float, array)&lt;br /&gt;
| &lt;br /&gt;
| Returns integer - the position of 'float' in the array.&lt;br /&gt;
|-&lt;br /&gt;
| arccos(float)&lt;br /&gt;
| &lt;br /&gt;
| Returns float - the arc cosine of 'float'.&lt;br /&gt;
|-&lt;br /&gt;
| arcsin(float)&lt;br /&gt;
| &lt;br /&gt;
| Returns float - the arc sine of 'float'.&lt;br /&gt;
|-&lt;br /&gt;
| attachplayertoobj(integer1, integer2)&lt;br /&gt;
| &lt;br /&gt;
| Attaches the player to the object with the matching ID where integer1 is the object type (currently only NPCs - 0) and integer2 is the ID of the desired object.&lt;br /&gt;
|-&lt;br /&gt;
| base64decode(string)&lt;br /&gt;
| &lt;br /&gt;
| Returns string - Decodes a base64 string.&lt;br /&gt;
|-&lt;br /&gt;
| base64encode(string)&lt;br /&gt;
| &lt;br /&gt;
| Returns string - Encodes string in to several characters of a 64 printable character set (A-Z, a-z, 0-9, + and /, while &amp;quot;=&amp;quot; is a special suffix code)&lt;br /&gt;
|-&lt;br /&gt;
| boxcontains(string, string)&lt;br /&gt;
| &lt;br /&gt;
| returns boolean.&lt;br /&gt;
|-&lt;br /&gt;
| boxcontainsvector(string, string)&lt;br /&gt;
| &lt;br /&gt;
| returns boolean&lt;br /&gt;
|-&lt;br /&gt;
| boxintersect(string, string)&lt;br /&gt;
| &lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| boxoverlaps(string, string)&lt;br /&gt;
| &lt;br /&gt;
| returns boolean&lt;br /&gt;
|-&lt;br /&gt;
| boxscale(string, string)&lt;br /&gt;
| &lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| callnpc(int index, string function)&lt;br /&gt;
| &lt;br /&gt;
| Calls a function from an NPC where 'index' is the NPC's index and 'function' is the function name.&lt;br /&gt;
|-&lt;br /&gt;
| callweapon(int index, string function)&lt;br /&gt;
| &lt;br /&gt;
| Calls a function from a weapon where 'index' is the weapon's index and 'function' is the function name.&lt;br /&gt;
|-&lt;br /&gt;
| castray({x,y,x}, {x,y,z}, string type)&lt;br /&gt;
| [3D]&lt;br /&gt;
| returns object - specify the start and end of the ray, and the object types (e.g. &amp;quot;staticts,terrain,interior&amp;quot;)&lt;br /&gt;
|-&lt;br /&gt;
| checksum(string)&lt;br /&gt;
| &lt;br /&gt;
| returns float&lt;br /&gt;
|-&lt;br /&gt;
| contains(string2, string1)&lt;br /&gt;
| &lt;br /&gt;
| returns boolean - True if string1 is contained within string2.&lt;br /&gt;
|-&lt;br /&gt;
| copystrings(string, string)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| cursoroff()&lt;br /&gt;
| [opengl]&lt;br /&gt;
| Disables the visible mouse cursor.&lt;br /&gt;
|-&lt;br /&gt;
| cursoron()&lt;br /&gt;
| [opengl]&lt;br /&gt;
| Enables the visible mouse cursor.&lt;br /&gt;
|-&lt;br /&gt;
| degtorad(float)&lt;br /&gt;
| &lt;br /&gt;
| returns float - Converts angle measurements of degrees to radians&lt;br /&gt;
|-&lt;br /&gt;
| detachplayer()&lt;br /&gt;
| &lt;br /&gt;
| Detaches a player from an attached object.&lt;br /&gt;
|-&lt;br /&gt;
| disabledefmovement()&lt;br /&gt;
| &lt;br /&gt;
| Disables the default movement system and controls(including weapons, sword, grab. Does not include Q-menu, pause, map...).&lt;br /&gt;
|-&lt;br /&gt;
| disablemap()&lt;br /&gt;
| &lt;br /&gt;
| Disables the default map (M).&lt;br /&gt;
|-&lt;br /&gt;
| disablepause()&lt;br /&gt;
| &lt;br /&gt;
| Disables the default pause (P).&lt;br /&gt;
|-&lt;br /&gt;
| disableselectweapons()&lt;br /&gt;
| &lt;br /&gt;
| Disables the default Q-menu (Q).&lt;br /&gt;
|-&lt;br /&gt;
| disableweapons()&lt;br /&gt;
| &lt;br /&gt;
| Disables the default sword (S) and weapons (D).&lt;br /&gt;
|-&lt;br /&gt;
| echo(string)&lt;br /&gt;
| &lt;br /&gt;
| echos 'string' to the debug window(F2).&lt;br /&gt;
|-&lt;br /&gt;
| enabledefmovement()&lt;br /&gt;
| &lt;br /&gt;
| Enables the default movement system.&lt;br /&gt;
|-&lt;br /&gt;
| [[Creation/Dev/Script/Functions/enablefeatures(int)|enablefeatures(int)]]&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| enablemap()&lt;br /&gt;
| &lt;br /&gt;
| Enables the default map system(M).&lt;br /&gt;
|-&lt;br /&gt;
| enablepause()&lt;br /&gt;
| &lt;br /&gt;
| Enables the default pause system(P).&lt;br /&gt;
|-&lt;br /&gt;
| enableselectweapons()&lt;br /&gt;
| &lt;br /&gt;
| Enables the default Q-menu(Q).&lt;br /&gt;
|-&lt;br /&gt;
| enableweapons()&lt;br /&gt;
| &lt;br /&gt;
| Enables the default sword(S) and weapons(D).&lt;br /&gt;
|-&lt;br /&gt;
| escapestring(string)&lt;br /&gt;
| &lt;br /&gt;
| returns string - adds \\ in front of &amp;quot;, ' and \\, and removes non-printable characters&lt;br /&gt;
|-&lt;br /&gt;
| explodebomb(integer)&lt;br /&gt;
| &lt;br /&gt;
| explodes the bomb with the id of 'integer'.&lt;br /&gt;
|-&lt;br /&gt;
| extractfilebase(string)&lt;br /&gt;
| &lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| extractfileext(string)&lt;br /&gt;
| &lt;br /&gt;
| Takes in a file name, and returns its extension. &lt;br /&gt;
|-&lt;br /&gt;
| extractfilepath(string)&lt;br /&gt;
| &lt;br /&gt;
| returns string &lt;br /&gt;
|-&lt;br /&gt;
| fileexists(string)&lt;br /&gt;
| &lt;br /&gt;
| returns boolean of whether the file 'str' exists in the players Graal/ directory(does not search subfolders).&lt;br /&gt;
|-&lt;br /&gt;
| filesize(string)&lt;br /&gt;
| &lt;br /&gt;
| Returns the size(int) of the file 'string' in the players Graal/ directory(does not search subfolders).&lt;br /&gt;
|-&lt;br /&gt;
| fileupdate(string)&lt;br /&gt;
| &lt;br /&gt;
| returns boolean&lt;br /&gt;
|-&lt;br /&gt;
| findani(string)&lt;br /&gt;
| &lt;br /&gt;
| returns object&lt;br /&gt;
|-&lt;br /&gt;
| findfiles(string, integer)&lt;br /&gt;
| &lt;br /&gt;
| returns object&lt;br /&gt;
|-&lt;br /&gt;
| findlevel(string)&lt;br /&gt;
| &lt;br /&gt;
| returns object&lt;br /&gt;
|-&lt;br /&gt;
| findnearestplayer(float1, float2)&lt;br /&gt;
| &lt;br /&gt;
| Returns the closest player's object relevant to float1 and float2.&lt;br /&gt;
|-&lt;br /&gt;
| findnearestplayers(float, float)&lt;br /&gt;
| &lt;br /&gt;
| Returns the closest players' object relevant to float1 and float2.&lt;br /&gt;
|-&lt;br /&gt;
| findnpcbyid(integer)&lt;br /&gt;
|&lt;br /&gt;
| Returns the NPC object with the ID of 'int'.&lt;br /&gt;
|-&lt;br /&gt;
| findpathinarray(obj1, obj2, obj3, obj4, obj5, int, int, int)&lt;br /&gt;
|&lt;br /&gt;
| Returns object - Simple path-finding: Obj1 being tiles that allow walking, Obj2 being tiles that don't allow walking, Obj3; tiles that shouldn't be allowed to walked on, Obj4; tiles that are able to be walked on, Obj5; tiles where we may stop. Integers are relevant to the startx, starty and maximum path length. - Arrays for allowed/non-allowed tiles are only checked if they aren't null.&lt;br /&gt;
|-&lt;br /&gt;
| findplayer(string)&lt;br /&gt;
|&lt;br /&gt;
| Returns the player object with the account equal to string.&lt;br /&gt;
|-&lt;br /&gt;
| findplayerbycommunityname(string)&lt;br /&gt;
|&lt;br /&gt;
| Returns the player object with the community name equal to string.&lt;br /&gt;
|-&lt;br /&gt;
| findplayerbyid(integer)&lt;br /&gt;
|&lt;br /&gt;
| Returns the player object with the ID equal to integer.&lt;br /&gt;
|-&lt;br /&gt;
| findweapon(string)&lt;br /&gt;
|&lt;br /&gt;
| Returns the weapon object with the name equal to string.&lt;br /&gt;
|-&lt;br /&gt;
| format(string, string, ...)&lt;br /&gt;
|&lt;br /&gt;
| See [[Creation/Dev/Output_Methods#format.28.29_function|format()]]. &lt;br /&gt;
|- &lt;br /&gt;
| format2(string, array)&lt;br /&gt;
| &lt;br /&gt;
| Like format(), except that this expects the format string and an array of variables instead of passing the variables as separate parameters.&lt;br /&gt;
|-&lt;br /&gt;
| freefileresources(string)&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| freezeplayer(float)&lt;br /&gt;
|&lt;br /&gt;
| Freezes the player for the number of seconds specified by float.&lt;br /&gt;
|-&lt;br /&gt;
| get3dobjectat(float, float, boolean)&lt;br /&gt;
| [3D]&lt;br /&gt;
| Gets the 3d object at the specified screen position, third parameter true if it should do box collision.&lt;br /&gt;
|-&lt;br /&gt;
| get3dobjectatmouse(boolean)&lt;br /&gt;
| [3D]&lt;br /&gt;
| Gets the 3d object at the mouse.  Parameter true if it should do box collision.&lt;br /&gt;
|-&lt;br /&gt;
| get3dobjectbyray(string, string)&lt;br /&gt;
| [3D]&lt;br /&gt;
| returns object&lt;br /&gt;
|-&lt;br /&gt;
| get3dobjectsbybox(string, string)&lt;br /&gt;
| [3D]&lt;br /&gt;
| 1st parameter defines the box {minx,miny,minz, maxx,maxy,maxz}.  Second parameter specifies the type of object to find (e.g. &amp;quot;staticts,terrain,interior&amp;quot;)&lt;br /&gt;
|-&lt;br /&gt;
| get3dscreenposition(string, boolean)&lt;br /&gt;
| [3D]&lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| getanglesfromvector({x, y, z})&lt;br /&gt;
|&lt;br /&gt;
| Returns an array that contains the angles the 3D vector {x, y, z} makes with the X-Y and X-Z axes.&lt;br /&gt;
|-&lt;br /&gt;
| getascii(string)&lt;br /&gt;
|&lt;br /&gt;
| Returns the [http://www.asciitable.com/ ascii] code for string.&lt;br /&gt;
|-&lt;br /&gt;
| getbasepackage()&lt;br /&gt;
|&lt;br /&gt;
| returns object&lt;br /&gt;
|-&lt;br /&gt;
| getboxcenter(string)&lt;br /&gt;
|&lt;br /&gt;
| Returns an array containing the center of a 3D box specified by string ({x0,y0,z0,x1,y1,z1,...}).&lt;br /&gt;
|-&lt;br /&gt;
| getdesktopresolution()&lt;br /&gt;
|&lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| getdisplaydevicelist()&lt;br /&gt;
|&lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| getdownloadedupdatepackagesize()&lt;br /&gt;
|&lt;br /&gt;
| Returns the size of the downloaded update package.&lt;br /&gt;
|-&lt;br /&gt;
| getdownloadingpackage()&lt;br /&gt;
|&lt;br /&gt;
| Returns a reference to current update package being downloaded.&lt;br /&gt;
|-&lt;br /&gt;
| getdownloadingpackagescount()&lt;br /&gt;
|&lt;br /&gt;
| Returns a count of the number of update packages to download.&lt;br /&gt;
|-&lt;br /&gt;
| getdropz(string)&lt;br /&gt;
|&lt;br /&gt;
| returns float&lt;br /&gt;
|-&lt;br /&gt;
| getExtension(string)&lt;br /&gt;
|&lt;br /&gt;
| This function is the same as extractFileExt().  Takes in a file name, and returns its extension.&lt;br /&gt;
|-&lt;br /&gt;
| getfilemodtime(string)&lt;br /&gt;
|&lt;br /&gt;
| Returns a timestamp of when the file was last modified (in unix time compatible to timevar2). This function accepts both exact file path and plain file name.&lt;br /&gt;
|-&lt;br /&gt;
| gethttprequest(string, integer, string)&lt;br /&gt;
| &lt;br /&gt;
| returns object (This function is the same as requestHttp())&lt;br /&gt;
|-&lt;br /&gt;
| getimgheight(string)&lt;br /&gt;
|&lt;br /&gt;
| Returns the height (in pixels) of the filename indicated by string.&lt;br /&gt;
|-&lt;br /&gt;
| getimgpixel(string, integer, integer)&lt;br /&gt;
|&lt;br /&gt;
| returns object&lt;br /&gt;
|-&lt;br /&gt;
| getimgwidth(string)&lt;br /&gt;
|&lt;br /&gt;
| Returns the width(in pixels) of the filename indicated by string.&lt;br /&gt;
|-&lt;br /&gt;
| getkeycode(string)&lt;br /&gt;
|&lt;br /&gt;
| Returns the keycode of the key indicated by string.  The keycode returned can be used in keydown2().&lt;br /&gt;
|-&lt;br /&gt;
| getloginaccountname()&lt;br /&gt;
|&lt;br /&gt;
| Presumably used for the login server.  Use player.account instead.&lt;br /&gt;
|-&lt;br /&gt;
| getmapx(string)&lt;br /&gt;
| &lt;br /&gt;
| Gets the x coordinate location in the gmap of the level indicated by string.  The top-left level starts at (0, 0).&lt;br /&gt;
|-&lt;br /&gt;
| getmapy(string)&lt;br /&gt;
|&lt;br /&gt;
| Gets the y coordinate location in the gmap of the level indicated by string.  The top-left level starts at (0, 0).&lt;br /&gt;
|-&lt;br /&gt;
| getmusicfilename()&lt;br /&gt;
|&lt;br /&gt;
| Returns the filename of the music currently playing.&lt;br /&gt;
|-&lt;br /&gt;
| getmusicstatus()&lt;br /&gt;
|&lt;br /&gt;
| Returns the status of the music currently playing.&lt;br /&gt;
|-&lt;br /&gt;
| getmusictags()&lt;br /&gt;
|&lt;br /&gt;
| Returns the tags of the music currently playing.  This function can be used to retrieve the title and artist info of the music.&lt;br /&gt;
|-&lt;br /&gt;
| getnearestplayer(float, float)&lt;br /&gt;
|&lt;br /&gt;
| Deprecated.  Use findnearestplayer() instead.&lt;br /&gt;
|-&lt;br /&gt;
| getnearestplayers(float, float)&lt;br /&gt;
|&lt;br /&gt;
| Deprecated.  Use findnearestplayers() instead.&lt;br /&gt;
|-&lt;br /&gt;
| getpackagesdownloadcomplete()&lt;br /&gt;
|&lt;br /&gt;
| Returns 'true' if the package downloads are complete.&lt;br /&gt;
|-&lt;br /&gt;
| getpackagesdownloaded()&lt;br /&gt;
|&lt;br /&gt;
| Returns 'true' if the most recent packages are already downloaded.&lt;br /&gt;
|-&lt;br /&gt;
| getplatform()&lt;br /&gt;
|&lt;br /&gt;
| Returns the platform that the player is using.  (i.e. windows, mac, or linux)&lt;br /&gt;
|-&lt;br /&gt;
| getresolutionlist(string)&lt;br /&gt;
|&lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| getservername()&lt;br /&gt;
|&lt;br /&gt;
| Returns the name of the server the player is currently connected to.&lt;br /&gt;
|-&lt;br /&gt;
| getstringkeys(string)&lt;br /&gt;
|&lt;br /&gt;
| Returns an array of the variables that begins with the supplied string.&lt;br /&gt;
|-&lt;br /&gt;
| getterraintexture(float, float)&lt;br /&gt;
|&lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| getterraintextureindex(float, float)&lt;br /&gt;
|&lt;br /&gt;
| returns integer&lt;br /&gt;
|-&lt;br /&gt;
| gettextheight(float zoom, string style, string font)&lt;br /&gt;
|&lt;br /&gt;
| returns integer - The height in pixels of the text with the given zoom, style and font.&lt;br /&gt;
|-&lt;br /&gt;
| gettextwidth(float zoom, string style, string font, string text)&lt;br /&gt;
|&lt;br /&gt;
| returns integer - The width of the text with the given zoom, style, font and text.&lt;br /&gt;
|-&lt;br /&gt;
| gettileset()&lt;br /&gt;
|&lt;br /&gt;
| returns string - the current main tileset (pics1.png, picso.png etc.)&lt;br /&gt;
|-&lt;br /&gt;
| gettilesettype()&lt;br /&gt;
|&lt;br /&gt;
| returns integer - the current tileset type (pics1.png:0, picso.png:5 etc.)&lt;br /&gt;
|-&lt;br /&gt;
| gettotalupdatepackagesize()&lt;br /&gt;
|&lt;br /&gt;
| returns integer - The total size of the update packages.&lt;br /&gt;
|-&lt;br /&gt;
| getupdatepackage(string name)&lt;br /&gt;
|&lt;br /&gt;
| returns object - A reference to the update package with the given name.&lt;br /&gt;
|-&lt;br /&gt;
| getvectorfromangles(float, float)&lt;br /&gt;
|&lt;br /&gt;
| returns string&lt;br /&gt;
|- &lt;br /&gt;
| getz(float, float)&lt;br /&gt;
|&lt;br /&gt;
| returns float&lt;br /&gt;
|-&lt;br /&gt;
| graalcontrolhasfocus(bool)&lt;br /&gt;
|&lt;br /&gt;
| returns boolean - Whether or not the graal control has focus.  Parameter says if it should also check if the chat bar has the focus&lt;br /&gt;
|-&lt;br /&gt;
| hideplayer(float time)&lt;br /&gt;
|&lt;br /&gt;
| Hides player for the specified amount of time.&lt;br /&gt;
|-&lt;br /&gt;
| hidesword(float time)&lt;br /&gt;
|&lt;br /&gt;
| Hides the player's sword for the specified amount of time.&lt;br /&gt;
|-&lt;br /&gt;
| hitnpc(int index, float halfhearts, float fromx, float fromy)&lt;br /&gt;
|&lt;br /&gt;
| Hit's npc with specified index causing the specified amount of halfhearts in damage. It also knocks back the npc based on the from X and Y coordinate passed to it.&lt;br /&gt;
|-&lt;br /&gt;
| hitobjects(float power, float x, float y)&lt;br /&gt;
|&lt;br /&gt;
| Hurts all the npcs with the specified power on the position passed to it.&lt;br /&gt;
|-&lt;br /&gt;
| hitplayer(int index, float halfhearts, float fromx, float fromy)&lt;br /&gt;
|&lt;br /&gt;
| Hit's player with specified index causing the specified amount of halfhearts in damage. It also knocks back the player based on the from X and Y coordinate passed to it. Use 0 as the index to hit your own player.&lt;br /&gt;
|-&lt;br /&gt;
| isadminguild(str guildname)&lt;br /&gt;
| &lt;br /&gt;
| returns boolean - If the passed guildname is an admin guild or not.&lt;br /&gt;
|-&lt;br /&gt;
| isclassloaded(str classname)&lt;br /&gt;
|&lt;br /&gt;
| returns boolean - If the passed classname is loaded for the client.&lt;br /&gt;
|-&lt;br /&gt;
| iscursoron()&lt;br /&gt;
|&lt;br /&gt;
| returns boolean - If the cursor is on or not.&lt;br /&gt;
|-&lt;br /&gt;
| isdevicefullscreenonly(str device)&lt;br /&gt;
|&lt;br /&gt;
| returns boolean - If the device is full screen only or not.&lt;br /&gt;
|-&lt;br /&gt;
| isdownloading(str filename)&lt;br /&gt;
|&lt;br /&gt;
| returns boolean - If a file is currently downloaded or requested from the server.&lt;br /&gt;
|-&lt;br /&gt;
| isdownloadingfiles()&lt;br /&gt;
|&lt;br /&gt;
| returns boolean - checks if Graal is currently downloading or requesting files from the server.&lt;br /&gt;
|-&lt;br /&gt;
| isfullscreenmode()&lt;br /&gt;
|&lt;br /&gt;
| returns boolean - checks if Graal is currently in fullscreen mode.&lt;br /&gt;
|-&lt;br /&gt;
| isimgrectangletransparent(str, int, int, int, int)&lt;br /&gt;
| &lt;br /&gt;
| returns boolean&lt;br /&gt;
|-&lt;br /&gt;
| ismusicplaying()&lt;br /&gt;
| &lt;br /&gt;
| returns boolean&lt;br /&gt;
|-&lt;br /&gt;
| isobject(str)&lt;br /&gt;
| &lt;br /&gt;
| returns boolean&lt;br /&gt;
|-&lt;br /&gt;
| issoundplaying(str)&lt;br /&gt;
| &lt;br /&gt;
| returns boolean&lt;br /&gt;
|-&lt;br /&gt;
| keydown(int)&lt;br /&gt;
| &lt;br /&gt;
| returns boolean&lt;br /&gt;
|-&lt;br /&gt;
| keydown2(int, bool)&lt;br /&gt;
| &lt;br /&gt;
| returns boolean&lt;br /&gt;
|-&lt;br /&gt;
| keydown2global(int, bool)&lt;br /&gt;
| &lt;br /&gt;
| returns boolean&lt;br /&gt;
|-&lt;br /&gt;
| keydownglobal(int)&lt;br /&gt;
| &lt;br /&gt;
| returns boolean&lt;br /&gt;
|-&lt;br /&gt;
| keyname(int)&lt;br /&gt;
| &lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| lay2(str, float, float)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| lightscene()&lt;br /&gt;
| &lt;br /&gt;
| returns boolean&lt;br /&gt;
|-&lt;br /&gt;
| loadclass(str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| loadmap(str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| loadtranslation(str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| lowercase(str)&lt;br /&gt;
| &lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| ltmfs(bool)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| ltmmax(float, float)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| ltmmin(float, float)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| makescreenshot2(str, int, float, float, float, int, int)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| matrixcreate(str, str)&lt;br /&gt;
| &lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| matrixcreatefromeuler(str)&lt;br /&gt;
| &lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| matrixmulpoint(str, str)&lt;br /&gt;
| &lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| matrixmultiply(str, str)&lt;br /&gt;
| &lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| matrixmulvector(str, str)&lt;br /&gt;
| &lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| md5(str)&lt;br /&gt;
| &lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| noplayerkilling()&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| onwall(float, float)&lt;br /&gt;
| &lt;br /&gt;
| returns boolean&lt;br /&gt;
|-&lt;br /&gt;
| onwall2(float, float, float, float)&lt;br /&gt;
| &lt;br /&gt;
| returns boolean&lt;br /&gt;
|-&lt;br /&gt;
| onwater(float, float)&lt;br /&gt;
| &lt;br /&gt;
| returns boolean&lt;br /&gt;
|-&lt;br /&gt;
| onwater2(float, float, float, float)&lt;br /&gt;
| &lt;br /&gt;
| returns boolean&lt;br /&gt;
|-&lt;br /&gt;
| opengraalurl(str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| openurl(str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| openurl2(str, int, int)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| play(str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| play2(str, float, float, float)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| play3d(str, bool, str, str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| playlooped(str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| playlooped2(str, float, float, float)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| popdialog()&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| pushdialog(obj)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| putleaps(int, float, float)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| radtodeg(float)&lt;br /&gt;
| &lt;br /&gt;
| returns float&lt;br /&gt;
|-&lt;br /&gt;
| randomstring(str)&lt;br /&gt;
| &lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| removetiledefs(str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| replaceani(str, str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| requestfiledeletion(str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| requestfilerename(str, str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| requestfilesmove(str, str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| requesthttp(str, int, str)&lt;br /&gt;
| &lt;br /&gt;
| returns object&lt;br /&gt;
|-&lt;br /&gt;
| requesttext(str, str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| requesturl(str)&lt;br /&gt;
| &lt;br /&gt;
| returns object&lt;br /&gt;
|-&lt;br /&gt;
| resetfocus()&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| rotationadd(str, str)&lt;br /&gt;
| &lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| rotationaddeuler(str, str)&lt;br /&gt;
| &lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| rotationfromeuler(str)&lt;br /&gt;
| &lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| rotationsub(str, str)&lt;br /&gt;
| &lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| rotationtoeuler(str)&lt;br /&gt;
| &lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| rungarbagecollector()&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| savelog(str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| say(int)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| say2(str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| screenx(float, float)&lt;br /&gt;
| &lt;br /&gt;
| returns integer&lt;br /&gt;
|-&lt;br /&gt;
| screeny(float, float)&lt;br /&gt;
| &lt;br /&gt;
| returns integer&lt;br /&gt;
|-&lt;br /&gt;
| selectfilefordownload(str)&lt;br /&gt;
| &lt;br /&gt;
| opens the select&lt;br /&gt;
|-&lt;br /&gt;
| selectfileforupload()&lt;br /&gt;
| &lt;br /&gt;
| opens the select&lt;br /&gt;
|-&lt;br /&gt;
| sendrpgmessage(str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| sendtext(str, str, params...)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| sendtorc(str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| serverwarp(str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| setani(str, str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| setbeltcolor(str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| setcoatcolor(str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| setcontentcontrol(obj)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| setcursor2(str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| seteffect(float, float, float, float)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| setfocus(float, float)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| setfogcolors(obj)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| setgender(str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| sethead(str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| setinteriorrendermode(int)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| setletters(str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| setmap(str, str, float, float)&lt;br /&gt;
| &lt;br /&gt;
| sets a text map (you can see the tiles of other levels but not the npcs), parameters are text file with level names, the map image (not used anymore), default x and y for the head icons; use gmaps if possible instead of this&lt;br /&gt;
|-&lt;br /&gt;
| setminimap(str, str, float, float)&lt;br /&gt;
| &lt;br /&gt;
| parameters are a text file with level names, the image, default x and y; use gmaps if possible instead of this&lt;br /&gt;
|-&lt;br /&gt;
| setmusicvolume(float, float)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| setplayerdir(str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| setshield(str, int)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| setshoecolor(str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| setshootparams(str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| setskincolor(str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| setskybandcolors(obj)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| setskybandsizes(obj)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| setsleevecolor(str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| setspritesimage(str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| setstatusimage(str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| setsuncolors(obj)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| setsword(str, int)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| setterrainrendermode(int)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| showstats(int)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| spyfire(int, int)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| startrecordvideo()&lt;br /&gt;
| &lt;br /&gt;
| returns boolean&lt;br /&gt;
|-&lt;br /&gt;
| stopmidi()&lt;br /&gt;
| &lt;br /&gt;
| same as stopmusic(), kept for compatibility&lt;br /&gt;
|-&lt;br /&gt;
| stopmusic()&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| stoprecordvideo()&lt;br /&gt;
| &lt;br /&gt;
| returns boolean&lt;br /&gt;
|-&lt;br /&gt;
| stopsound(str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| strcmp(str, str)&lt;br /&gt;
| &lt;br /&gt;
| returns integer&lt;br /&gt;
|-&lt;br /&gt;
| strequals(str, str)&lt;br /&gt;
| &lt;br /&gt;
| returns boolean&lt;br /&gt;
|-&lt;br /&gt;
| switchtoopengl()&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| synctimeofday(float, float)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| takeplayercarry()&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| takeplayerhorse()&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| testplayer(float, float)&lt;br /&gt;
| &lt;br /&gt;
| returns integer&lt;br /&gt;
|-&lt;br /&gt;
| trace(str)&lt;br /&gt;
| &lt;br /&gt;
| same as echo()&lt;br /&gt;
|-&lt;br /&gt;
| triggeraction(float, float, str, params...)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| triggerserver(str, str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| update3dterrain(float, float, float, float)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| updateboard(int, int, int, int)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| updateterrain()&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| updatevisibledistance()&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| uploadfile(str)&lt;br /&gt;
| &lt;br /&gt;
| uploads a file, you must provide the full path provided by a onDropFiles() event, also this will only work if the scripted RC has currently a file browser window open; once the file is uploaded an onFilesUploaded event will be invoked&lt;br /&gt;
|-&lt;br /&gt;
| uppercase(str)&lt;br /&gt;
| &lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| vectoradd(str, str)&lt;br /&gt;
| &lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| vectorcross(str, str)&lt;br /&gt;
| &lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| vectordist(str, str)&lt;br /&gt;
| &lt;br /&gt;
| returns float&lt;br /&gt;
|-&lt;br /&gt;
| vectordot(str, str)&lt;br /&gt;
| &lt;br /&gt;
| returns float&lt;br /&gt;
|-&lt;br /&gt;
| vectorlen(str)&lt;br /&gt;
| &lt;br /&gt;
| returns float&lt;br /&gt;
|-&lt;br /&gt;
| vectornormalize(str)&lt;br /&gt;
| &lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| vectororthobasis(str)&lt;br /&gt;
| &lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| vectorscale(str, float)&lt;br /&gt;
| &lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| vectorsub(str, str)&lt;br /&gt;
| &lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| worldx(float, float)&lt;br /&gt;
| &lt;br /&gt;
| returns float&lt;br /&gt;
|-&lt;br /&gt;
| worldy(float, float)&lt;br /&gt;
| &lt;br /&gt;
| returns float&lt;br /&gt;
|-&lt;br /&gt;
| wraptext(int, str, str)&lt;br /&gt;
| &lt;br /&gt;
| returns object&lt;br /&gt;
|-&lt;br /&gt;
| wraptext2(int, float, str, str)&lt;br /&gt;
| &lt;br /&gt;
| returns object&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Objects=&lt;br /&gt;
{{:Creation/Dev/Script/Client}}&lt;br /&gt;
&lt;br /&gt;
=GUI Objects=&lt;br /&gt;
GUI Objects are currently well documented starting here [[Creation/Dev/Script/Client/GuiControl]].&lt;br /&gt;
&lt;br /&gt;
=Preference Variables=&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;2&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
| '''Variable'''&lt;br /&gt;
|width=&amp;quot;100px&amp;quot;|'''Type'''&lt;br /&gt;
| '''Notes'''&lt;br /&gt;
|-&lt;br /&gt;
| $pref::audio::choosenvoicecodec&lt;br /&gt;
| &lt;br /&gt;
| integer&lt;br /&gt;
|-&lt;br /&gt;
| $pref::audio::microactivatebyvolume&lt;br /&gt;
| &lt;br /&gt;
| boolean&lt;br /&gt;
|-&lt;br /&gt;
| $pref::audio::microactivationlevel&lt;br /&gt;
| &lt;br /&gt;
| integer&lt;br /&gt;
|-&lt;br /&gt;
| $pref::audio::microinputdevice&lt;br /&gt;
| &lt;br /&gt;
| integer&lt;br /&gt;
|-&lt;br /&gt;
| $pref::audio::microon&lt;br /&gt;
| &lt;br /&gt;
| boolean&lt;br /&gt;
|-&lt;br /&gt;
| $pref::audio::microvolumefactor&lt;br /&gt;
| &lt;br /&gt;
| integer&lt;br /&gt;
|-&lt;br /&gt;
| $pref::audio::midivolume&lt;br /&gt;
| &lt;br /&gt;
| integer&lt;br /&gt;
|-&lt;br /&gt;
| $pref::audio::mp3volume&lt;br /&gt;
| &lt;br /&gt;
| integer&lt;br /&gt;
|-&lt;br /&gt;
| $pref::audio::radiovolume&lt;br /&gt;
| &lt;br /&gt;
| integer&lt;br /&gt;
|-&lt;br /&gt;
| $pref::audio::reversestereo&lt;br /&gt;
| &lt;br /&gt;
| boolean&lt;br /&gt;
|-&lt;br /&gt;
| $pref::audio::sfxvolume&lt;br /&gt;
| &lt;br /&gt;
| integer&lt;br /&gt;
|-&lt;br /&gt;
| $pref::audio::voicevolume&lt;br /&gt;
| &lt;br /&gt;
| integer&lt;br /&gt;
|-&lt;br /&gt;
| $pref::capture::allowbyscript&lt;br /&gt;
| &lt;br /&gt;
| boolean [R]&lt;br /&gt;
|-&lt;br /&gt;
| $pref::capture::area&lt;br /&gt;
| &lt;br /&gt;
| string&lt;br /&gt;
|-&lt;br /&gt;
| $pref::capture::audiobitrate&lt;br /&gt;
| &lt;br /&gt;
| integer&lt;br /&gt;
|-&lt;br /&gt;
| $pref::capture::disabledaynight&lt;br /&gt;
| &lt;br /&gt;
| boolean&lt;br /&gt;
|-&lt;br /&gt;
| $pref::capture::format&lt;br /&gt;
| &lt;br /&gt;
| string&lt;br /&gt;
|-&lt;br /&gt;
| $pref::capture::fps&lt;br /&gt;
| &lt;br /&gt;
| integer&lt;br /&gt;
|-&lt;br /&gt;
| $pref::capture::hideinterface&lt;br /&gt;
| &lt;br /&gt;
| boolean&lt;br /&gt;
|-&lt;br /&gt;
| $pref::capture::recordaudio&lt;br /&gt;
| &lt;br /&gt;
| boolean&lt;br /&gt;
|-&lt;br /&gt;
| $pref::capture::showmouse&lt;br /&gt;
| &lt;br /&gt;
| boolean&lt;br /&gt;
|-&lt;br /&gt;
| $pref::capture::size&lt;br /&gt;
| &lt;br /&gt;
| string&lt;br /&gt;
|-&lt;br /&gt;
| $pref::capture::videobitrate&lt;br /&gt;
| &lt;br /&gt;
| integer&lt;br /&gt;
|-&lt;br /&gt;
| $pref::graal::allowglobalpms&lt;br /&gt;
| &lt;br /&gt;
| boolean&lt;br /&gt;
|-&lt;br /&gt;
| $pref::graal::automapping&lt;br /&gt;
| &lt;br /&gt;
| boolean&lt;br /&gt;
|-&lt;br /&gt;
| $pref::graal::defaultfontname&lt;br /&gt;
| &lt;br /&gt;
| string&lt;br /&gt;
|-&lt;br /&gt;
| $pref::graal::defaultfontsize&lt;br /&gt;
| &lt;br /&gt;
| integer&lt;br /&gt;
|-&lt;br /&gt;
| $pref::graal::dontconnectlevels&lt;br /&gt;
| &lt;br /&gt;
| boolean&lt;br /&gt;
|-&lt;br /&gt;
| $pref::graal::dontloadlistheads&lt;br /&gt;
| &lt;br /&gt;
| boolean&lt;br /&gt;
|-&lt;br /&gt;
| $pref::graal::dontsavepasswords&lt;br /&gt;
| &lt;br /&gt;
| boolean&lt;br /&gt;
|-&lt;br /&gt;
| $pref::graal::dontsavepms&lt;br /&gt;
| &lt;br /&gt;
| boolean&lt;br /&gt;
|-&lt;br /&gt;
| $pref::graal::fixedport&lt;br /&gt;
| &lt;br /&gt;
| boolean&lt;br /&gt;
|-&lt;br /&gt;
| $pref::graal::fixedudpport&lt;br /&gt;
| &lt;br /&gt;
| integer&lt;br /&gt;
|-&lt;br /&gt;
| $pref::graal::language&lt;br /&gt;
| &lt;br /&gt;
| string&lt;br /&gt;
|-&lt;br /&gt;
| $pref::graal::limitnicknames&lt;br /&gt;
| &lt;br /&gt;
| boolean&lt;br /&gt;
|-&lt;br /&gt;
| $pref::graal::loadbuddylistfromserver&lt;br /&gt;
| &lt;br /&gt;
| boolean&lt;br /&gt;
|-&lt;br /&gt;
| $pref::graal::nicknamelimit&lt;br /&gt;
| &lt;br /&gt;
| integer&lt;br /&gt;
|-&lt;br /&gt;
| $pref::graal::nomassmessages&lt;br /&gt;
| &lt;br /&gt;
| boolean&lt;br /&gt;
|-&lt;br /&gt;
| $pref::graal::notoalls&lt;br /&gt;
| &lt;br /&gt;
| boolean&lt;br /&gt;
|-&lt;br /&gt;
| $pref::graal::noudp&lt;br /&gt;
| &lt;br /&gt;
| boolean&lt;br /&gt;
|-&lt;br /&gt;
| $pref::graal::showyourselfonbuddylists&lt;br /&gt;
| &lt;br /&gt;
| boolean&lt;br /&gt;
|-&lt;br /&gt;
| $pref::input::mousesensitivity&lt;br /&gt;
| &lt;br /&gt;
| float&lt;br /&gt;
|-&lt;br /&gt;
| $pref::interior::lockarrays&lt;br /&gt;
| &lt;br /&gt;
| boolean&lt;br /&gt;
|-&lt;br /&gt;
| $pref::video::defaultguistyle&lt;br /&gt;
| &lt;br /&gt;
| string&lt;br /&gt;
|-&lt;br /&gt;
| $pref::video::detailfactor&lt;br /&gt;
| &lt;br /&gt;
| float&lt;br /&gt;
|-&lt;br /&gt;
| $pref::video::fogdistance&lt;br /&gt;
| &lt;br /&gt;
| float&lt;br /&gt;
|-&lt;br /&gt;
| $pref::video::fullscreenmode&lt;br /&gt;
| &lt;br /&gt;
| string&lt;br /&gt;
|-&lt;br /&gt;
| $pref::video::resolution&lt;br /&gt;
| &lt;br /&gt;
| integer&lt;br /&gt;
|-&lt;br /&gt;
| $pref::video::screenshotformat&lt;br /&gt;
| &lt;br /&gt;
| string&lt;br /&gt;
|-&lt;br /&gt;
| $pref::video::visibledistance&lt;br /&gt;
| &lt;br /&gt;
| float&lt;br /&gt;
|-&lt;br /&gt;
| $pref::video::windowmode&lt;br /&gt;
| &lt;br /&gt;
| string&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Fowlplay4</name></author>
	</entry>
	<entry>
		<id>https://graalonline.net/index.php?title=Creation/Dev/Script/Clientside_Functions&amp;diff=18130</id>
		<title>Creation/Dev/Script/Clientside Functions</title>
		<link rel="alternate" type="text/html" href="https://graalonline.net/index.php?title=Creation/Dev/Script/Clientside_Functions&amp;diff=18130"/>
		<updated>2011-04-09T19:46:28Z</updated>

		<summary type="html">&lt;p&gt;Fowlplay4: /* Objects */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Scripting Reference]]&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;2&amp;quot; width=&amp;quot;50%&amp;quot;&lt;br /&gt;
|[R]&lt;br /&gt;
| denotes it is read-only.&lt;br /&gt;
|-&lt;br /&gt;
|[3D]&lt;br /&gt;
| denotes it is a Graal3D function.&lt;br /&gt;
|-&lt;br /&gt;
|[opengl]&lt;br /&gt;
| denotes it is functional only in opengl mode.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Variables==&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;2&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
| '''Variable'''&lt;br /&gt;
|width=&amp;quot;100px&amp;quot;|'''Type'''&lt;br /&gt;
| '''Notes'''&lt;br /&gt;
|-&lt;br /&gt;
| allfeatures&lt;br /&gt;
| ''integer [R]''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| allplayerscount&lt;br /&gt;
| ''integer [R]''&lt;br /&gt;
| Returns the count of all players on your playerlist, including IRC bots.&lt;br /&gt;
|-&lt;br /&gt;
| allrenderobjecttypes&lt;br /&gt;
| ''integer [R]''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| allstats &lt;br /&gt;
| ''integer [R]''&lt;br /&gt;
| Used with showstats() in order to show all stats.&lt;br /&gt;
|-&lt;br /&gt;
| canspin&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| Returns true of false if the player has spin attack.&lt;br /&gt;
|-&lt;br /&gt;
| carriesblackstone&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| Returns whether the player is carrying a black stone.&lt;br /&gt;
|-&lt;br /&gt;
| carriesbush&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| Returns whether the player is carrying a bush.&lt;br /&gt;
|-&lt;br /&gt;
| carriesnpc&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| Returns whether the player is carrying an NPC&lt;br /&gt;
|-&lt;br /&gt;
| carriessign&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| Returns whether the player is carrying a sign.&lt;br /&gt;
|-&lt;br /&gt;
| carriesstone&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| Returns whether the player is carrying a stone.&lt;br /&gt;
|-&lt;br /&gt;
| carriesvase&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| Returns whether the player is carrying a vase.&lt;br /&gt;
|-&lt;br /&gt;
| downloadfile&lt;br /&gt;
| ''string [R]''&lt;br /&gt;
| Returns the currently downloaded file.&lt;br /&gt;
|-&lt;br /&gt;
| downloadpos&lt;br /&gt;
| ''integer [R]''&lt;br /&gt;
| Returns the position of the currently downloaded file.&lt;br /&gt;
|-&lt;br /&gt;
| downloadsize&lt;br /&gt;
| ''integer [R]''&lt;br /&gt;
| Returns the size of the currently downloaded file.&lt;br /&gt;
|-&lt;br /&gt;
| editingmission&lt;br /&gt;
| ''boolean''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| emoticonchar&lt;br /&gt;
| ''string [R]''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| focusx&lt;br /&gt;
| ''float [R]''&lt;br /&gt;
| Position of the camera in tile units.&lt;br /&gt;
|-&lt;br /&gt;
| focusy&lt;br /&gt;
| ''float [R]''&lt;br /&gt;
| Position of the camera in tile units.&lt;br /&gt;
|-&lt;br /&gt;
| ghostsnear&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| If a ghost(observer) is in the same level as the player.&lt;br /&gt;
|-&lt;br /&gt;
| graalplugincookie&lt;br /&gt;
| ''string [R]''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| graalversion&lt;br /&gt;
| ''float [R]''&lt;br /&gt;
| Version of Graal the player is using.&lt;br /&gt;
|-&lt;br /&gt;
| gravity&lt;br /&gt;
| ''float''&lt;br /&gt;
| The gravity value that effects how fast projectiles fall. It universally effects all projectiles.&lt;br /&gt;
|-&lt;br /&gt;
| installedlanguages&lt;br /&gt;
| ''string [R]''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| isapplicationactive&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| Is Graal window active?&lt;br /&gt;
|-&lt;br /&gt;
| iscarrying&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| Returns true of false if the player is carrying something.&lt;br /&gt;
|-&lt;br /&gt;
| isfocused&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| isgraal3d&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| isgraalplugin&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| isleader&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| Player was the first to enter the level.&lt;br /&gt;
|-&lt;br /&gt;
| isonmap&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| Player is on a map.&lt;br /&gt;
|-&lt;br /&gt;
| isopengl&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| Graal is in opengl mode.&lt;br /&gt;
|-&lt;br /&gt;
| isrecordingvideo&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| Player is currently recording(alt+6) Graal.&lt;br /&gt;
|-&lt;br /&gt;
| jpegquality&lt;br /&gt;
| ''integer''&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| isgraalplugin&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| lastdownloadfile&lt;br /&gt;
| ''string [R]''&lt;br /&gt;
| The last file downloaded.&lt;br /&gt;
|-&lt;br /&gt;
| leftmousebutton&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| If the left mouse button is pressed.&lt;br /&gt;
|-&lt;br /&gt;
| leftmousebuttonglobal&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| If the left mouse button is pressed. Returns whether mouse is in focus of GUIs or not.&lt;br /&gt;
|-&lt;br /&gt;
| levelorgx&lt;br /&gt;
| ''float [R]''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| levelorgy&lt;br /&gt;
| ''float [R]''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| lighteffectsenabled&lt;br /&gt;
| ''boolean''&lt;br /&gt;
| Whether the player has their lights enabled via options.&lt;br /&gt;
|-&lt;br /&gt;
| middlemousebutton&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| If the middle mouse button is pressed&lt;br /&gt;
|-&lt;br /&gt;
| middlemousebuttonglobal&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| If the middle mouse button is pressed. Returns whether mouse is in focus of GUIs or not.&lt;br /&gt;
|-&lt;br /&gt;
| mousebuttons &lt;br /&gt;
| ''integer [R]''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| mousebuttonsglobal&lt;br /&gt;
| ''integer [R]''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| mousepitch&lt;br /&gt;
| ''float [R] [3D]''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| mousescreenx &lt;br /&gt;
| ''integer''&lt;br /&gt;
| Position of the mouse in the Graal screen, in pixel units on the x-axis.&lt;br /&gt;
|-&lt;br /&gt;
| mousescreeny &lt;br /&gt;
| ''integer''&lt;br /&gt;
| Position of the mouse in the Graal screen, in pixel units on the y-axis.&lt;br /&gt;
|-&lt;br /&gt;
| mousewheeldelta&lt;br /&gt;
| ''integer [R]''&lt;br /&gt;
| How much the mouse wheel has been scrolled.&lt;br /&gt;
|-&lt;br /&gt;
| mousex&lt;br /&gt;
| ''float''&lt;br /&gt;
| Position of the mouse in the level, in tile units, on the x-axis.&lt;br /&gt;
|-&lt;br /&gt;
| mousey&lt;br /&gt;
| ''float''&lt;br /&gt;
| Position of the mouse in the level, in tile units, on the y-axis&lt;br /&gt;
|-&lt;br /&gt;
| mouseyaw&lt;br /&gt;
| ''float [R] [3D]''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| musiclen &lt;br /&gt;
| ''integer [R]''&lt;br /&gt;
| Length of current playing '''MP3'''&lt;br /&gt;
|-&lt;br /&gt;
| musicpos&lt;br /&gt;
| ''integer [R]''&lt;br /&gt;
| Position of current playing '''MP3'''&lt;br /&gt;
|-&lt;br /&gt;
| particleeffectsenabled&lt;br /&gt;
| ''boolean''&lt;br /&gt;
| If player has particles enabled in their options.&lt;br /&gt;
|-&lt;br /&gt;
| rightmousebutton &lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| If the right mouse button is pressed&lt;br /&gt;
|-&lt;br /&gt;
| rightmousebuttonglobal &lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| If the right mouse button is pressed. Returns whether mouse is in focus of GUIs or not.&lt;br /&gt;
|-&lt;br /&gt;
| screenheight&lt;br /&gt;
| ''integer [R]''&lt;br /&gt;
| Height of the Graal screen in pixel units.&lt;br /&gt;
|-&lt;br /&gt;
| screenwidth&lt;br /&gt;
| ''integer [R]''&lt;br /&gt;
| Width of the Graal screen in pixel units.&lt;br /&gt;
|-&lt;br /&gt;
| scriptedcontrols &lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| scriptedplayerlist&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| Whether the player has the scripted playerlist enabled.&lt;br /&gt;
|-&lt;br /&gt;
| scriptlogwritetoreadonly&lt;br /&gt;
| ''boolean''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| selectedlistplayers&lt;br /&gt;
| ''object''&lt;br /&gt;
| An object of all players selected on the playerlist.&lt;br /&gt;
|-&lt;br /&gt;
| selectedsword &lt;br /&gt;
| ''integer''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| selectedweapon &lt;br /&gt;
| ''integer''&lt;br /&gt;
| Index of the currently selected weapon.&lt;br /&gt;
|-&lt;br /&gt;
| servername&lt;br /&gt;
| ''string [R]''&lt;br /&gt;
| Name of the server.&lt;br /&gt;
|-&lt;br /&gt;
| serverstartconnect &lt;br /&gt;
| ''string''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| serverstartparams &lt;br /&gt;
| ''string''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| shotbybaddy&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| If the player is shot by a baddy(default) arrow.&lt;br /&gt;
|-&lt;br /&gt;
| shotbyplayer&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| If the player is shot by another players arrow.&lt;br /&gt;
|-&lt;br /&gt;
| showterraingrid&lt;br /&gt;
| ''boolean''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| spritesimage&lt;br /&gt;
| ''string''&lt;br /&gt;
| Filename of the currently set sprite image.&lt;br /&gt;
|-&lt;br /&gt;
| statusimage&lt;br /&gt;
| ''string''&lt;br /&gt;
| Filename of the currently set state image.&lt;br /&gt;
|-&lt;br /&gt;
| timevar&lt;br /&gt;
| ''integer [R].''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| timevar2&lt;br /&gt;
| ''float [R]''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| timevar3&lt;br /&gt;
| ''float [R] [3D]''&lt;br /&gt;
| Synchronized time which works on both server and client-side, precision is milliseconds.&lt;br /&gt;
|-&lt;br /&gt;
| wasshooted&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| If the player is shot by a default arrow.&lt;br /&gt;
|-&lt;br /&gt;
| waterheight&lt;br /&gt;
| ''float''&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| weapons&lt;br /&gt;
| ''object [R]''&lt;br /&gt;
| all the players weapons, this includes login inherited weapons.&lt;br /&gt;
|-&lt;br /&gt;
| weaponsenabled&lt;br /&gt;
| ''boolean''&lt;br /&gt;
| If the players weapons are enabled via disableweapons()/enableweapons().&lt;br /&gt;
|-&lt;br /&gt;
| weathereffectsenabled&lt;br /&gt;
| ''boolean''&lt;br /&gt;
| If weather is enabled in the players options.&lt;br /&gt;
|-&lt;br /&gt;
| worldclockstopped&lt;br /&gt;
| ''boolean''&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| worldhour &lt;br /&gt;
| ''integer''&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| worldminute &lt;br /&gt;
| ''float''&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| worldminutesofday &lt;br /&gt;
| ''float''&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| worldrealsecondsperday &lt;br /&gt;
| ''float''&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Functions=&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;2&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
| '''Function'''&lt;br /&gt;
|width=&amp;quot;100px&amp;quot;|'''Type'''&lt;br /&gt;
| '''Notes'''&lt;br /&gt;
|-&lt;br /&gt;
| addcontrol(object)&lt;br /&gt;
|&lt;br /&gt;
| adds 'object' to the parent control.&lt;br /&gt;
|-&lt;br /&gt;
| addmaterialmapping(string, string)&lt;br /&gt;
| [3D]&lt;br /&gt;
| returns boolean.&lt;br /&gt;
|-&lt;br /&gt;
| addtiledef(string image, string prefix, int format)&lt;br /&gt;
| &lt;br /&gt;
| Adds a tileset definition with the supplied tileset image, level prefix and tileset format (0=pics1, 1=new world, 5=terrain).&lt;br /&gt;
|-&lt;br /&gt;
| addtiledef2(string image, string prefix, int x, int y)&lt;br /&gt;
| &lt;br /&gt;
| Overlays an image on the tileset with the supplied tileset image and level prefix. Parameters 'x' and 'y' represent the x and y position on the tileset of where to place the new image.&lt;br /&gt;
|-&lt;br /&gt;
| aindexof(float, array)&lt;br /&gt;
| &lt;br /&gt;
| Returns integer - the position of 'float' in the array.&lt;br /&gt;
|-&lt;br /&gt;
| arccos(float)&lt;br /&gt;
| &lt;br /&gt;
| Returns float - the arc cosine of 'float'.&lt;br /&gt;
|-&lt;br /&gt;
| arcsin(float)&lt;br /&gt;
| &lt;br /&gt;
| Returns float - the arc sine of 'float'.&lt;br /&gt;
|-&lt;br /&gt;
| attachplayertoobj(integer1, integer2)&lt;br /&gt;
| &lt;br /&gt;
| Attaches the player to the object with the matching ID where integer1 is the object type (currently only NPCs - 0) and integer2 is the ID of the desired object.&lt;br /&gt;
|-&lt;br /&gt;
| base64decode(string)&lt;br /&gt;
| &lt;br /&gt;
| Returns string - Decodes a base64 string.&lt;br /&gt;
|-&lt;br /&gt;
| base64encode(string)&lt;br /&gt;
| &lt;br /&gt;
| Returns string - Encodes string in to several characters of a 64 printable character set (A-Z, a-z, 0-9, + and /, while &amp;quot;=&amp;quot; is a special suffix code)&lt;br /&gt;
|-&lt;br /&gt;
| boxcontains(string, string)&lt;br /&gt;
| &lt;br /&gt;
| returns boolean.&lt;br /&gt;
|-&lt;br /&gt;
| boxcontainsvector(string, string)&lt;br /&gt;
| &lt;br /&gt;
| returns boolean&lt;br /&gt;
|-&lt;br /&gt;
| boxintersect(string, string)&lt;br /&gt;
| &lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| boxoverlaps(string, string)&lt;br /&gt;
| &lt;br /&gt;
| returns boolean&lt;br /&gt;
|-&lt;br /&gt;
| boxscale(string, string)&lt;br /&gt;
| &lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| callnpc(int index, string function)&lt;br /&gt;
| &lt;br /&gt;
| Calls a function from an NPC where 'index' is the NPC's index and 'function' is the function name.&lt;br /&gt;
|-&lt;br /&gt;
| callweapon(int index, string function)&lt;br /&gt;
| &lt;br /&gt;
| Calls a function from a weapon where 'index' is the weapon's index and 'function' is the function name.&lt;br /&gt;
|-&lt;br /&gt;
| castray({x,y,x}, {x,y,z}, string type)&lt;br /&gt;
| [3D]&lt;br /&gt;
| returns object - specify the start and end of the ray, and the object types (e.g. &amp;quot;staticts,terrain,interior&amp;quot;)&lt;br /&gt;
|-&lt;br /&gt;
| checksum(string)&lt;br /&gt;
| &lt;br /&gt;
| returns float&lt;br /&gt;
|-&lt;br /&gt;
| contains(string2, string1)&lt;br /&gt;
| &lt;br /&gt;
| returns boolean - True if string1 is contained within string2.&lt;br /&gt;
|-&lt;br /&gt;
| copystrings(string, string)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| cursoroff()&lt;br /&gt;
| [opengl]&lt;br /&gt;
| Disables the visible mouse cursor.&lt;br /&gt;
|-&lt;br /&gt;
| cursoron()&lt;br /&gt;
| [opengl]&lt;br /&gt;
| Enables the visible mouse cursor.&lt;br /&gt;
|-&lt;br /&gt;
| degtorad(float)&lt;br /&gt;
| &lt;br /&gt;
| returns float - Converts angle measurements of degrees to radians&lt;br /&gt;
|-&lt;br /&gt;
| detachplayer()&lt;br /&gt;
| &lt;br /&gt;
| Detaches a player from an attached object.&lt;br /&gt;
|-&lt;br /&gt;
| disabledefmovement()&lt;br /&gt;
| &lt;br /&gt;
| Disables the default movement system and controls(including weapons, sword, grab. Does not include Q-menu, pause, map...).&lt;br /&gt;
|-&lt;br /&gt;
| disablemap()&lt;br /&gt;
| &lt;br /&gt;
| Disables the default map (M).&lt;br /&gt;
|-&lt;br /&gt;
| disablepause()&lt;br /&gt;
| &lt;br /&gt;
| Disables the default pause (P).&lt;br /&gt;
|-&lt;br /&gt;
| disableselectweapons()&lt;br /&gt;
| &lt;br /&gt;
| Disables the default Q-menu (Q).&lt;br /&gt;
|-&lt;br /&gt;
| disableweapons()&lt;br /&gt;
| &lt;br /&gt;
| Disables the default sword (S) and weapons (D).&lt;br /&gt;
|-&lt;br /&gt;
| echo(string)&lt;br /&gt;
| &lt;br /&gt;
| echos 'string' to the debug window(F2).&lt;br /&gt;
|-&lt;br /&gt;
| enabledefmovement()&lt;br /&gt;
| &lt;br /&gt;
| Enables the default movement system.&lt;br /&gt;
|-&lt;br /&gt;
| [[Creation/Dev/Script/Functions/enablefeatures(int)|enablefeatures(int)]]&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| enablemap()&lt;br /&gt;
| &lt;br /&gt;
| Enables the default map system(M).&lt;br /&gt;
|-&lt;br /&gt;
| enablepause()&lt;br /&gt;
| &lt;br /&gt;
| Enables the default pause system(P).&lt;br /&gt;
|-&lt;br /&gt;
| enableselectweapons()&lt;br /&gt;
| &lt;br /&gt;
| Enables the default Q-menu(Q).&lt;br /&gt;
|-&lt;br /&gt;
| enableweapons()&lt;br /&gt;
| &lt;br /&gt;
| Enables the default sword(S) and weapons(D).&lt;br /&gt;
|-&lt;br /&gt;
| escapestring(string)&lt;br /&gt;
| &lt;br /&gt;
| returns string - adds \\ in front of &amp;quot;, ' and \\, and removes non-printable characters&lt;br /&gt;
|-&lt;br /&gt;
| explodebomb(integer)&lt;br /&gt;
| &lt;br /&gt;
| explodes the bomb with the id of 'integer'.&lt;br /&gt;
|-&lt;br /&gt;
| extractfilebase(string)&lt;br /&gt;
| &lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| extractfileext(string)&lt;br /&gt;
| &lt;br /&gt;
| Takes in a file name, and returns its extension. &lt;br /&gt;
|-&lt;br /&gt;
| extractfilepath(string)&lt;br /&gt;
| &lt;br /&gt;
| returns string &lt;br /&gt;
|-&lt;br /&gt;
| fileexists(string)&lt;br /&gt;
| &lt;br /&gt;
| returns boolean of whether the file 'str' exists in the players Graal/ directory(does not search subfolders).&lt;br /&gt;
|-&lt;br /&gt;
| filesize(string)&lt;br /&gt;
| &lt;br /&gt;
| Returns the size(int) of the file 'string' in the players Graal/ directory(does not search subfolders).&lt;br /&gt;
|-&lt;br /&gt;
| fileupdate(string)&lt;br /&gt;
| &lt;br /&gt;
| returns boolean&lt;br /&gt;
|-&lt;br /&gt;
| findani(string)&lt;br /&gt;
| &lt;br /&gt;
| returns object&lt;br /&gt;
|-&lt;br /&gt;
| findfiles(string, integer)&lt;br /&gt;
| &lt;br /&gt;
| returns object&lt;br /&gt;
|-&lt;br /&gt;
| findlevel(string)&lt;br /&gt;
| &lt;br /&gt;
| returns object&lt;br /&gt;
|-&lt;br /&gt;
| findnearestplayer(float1, float2)&lt;br /&gt;
| &lt;br /&gt;
| Returns the closest player's object relevant to float1 and float2.&lt;br /&gt;
|-&lt;br /&gt;
| findnearestplayers(float, float)&lt;br /&gt;
| &lt;br /&gt;
| Returns the closest players' object relevant to float1 and float2.&lt;br /&gt;
|-&lt;br /&gt;
| findnpcbyid(integer)&lt;br /&gt;
|&lt;br /&gt;
| Returns the NPC object with the ID of 'int'.&lt;br /&gt;
|-&lt;br /&gt;
| findpathinarray(obj1, obj2, obj3, obj4, obj5, int, int, int)&lt;br /&gt;
|&lt;br /&gt;
| Returns object - Simple path-finding: Obj1 being tiles that allow walking, Obj2 being tiles that don't allow walking, Obj3; tiles that shouldn't be allowed to walked on, Obj4; tiles that are able to be walked on, Obj5; tiles where we may stop. Integers are relevant to the startx, starty and maximum path length. - Arrays for allowed/non-allowed tiles are only checked if they aren't null.&lt;br /&gt;
|-&lt;br /&gt;
| findplayer(string)&lt;br /&gt;
|&lt;br /&gt;
| Returns the player object with the account equal to string.&lt;br /&gt;
|-&lt;br /&gt;
| findplayerbycommunityname(string)&lt;br /&gt;
|&lt;br /&gt;
| Returns the player object with the community name equal to string.&lt;br /&gt;
|-&lt;br /&gt;
| findplayerbyid(integer)&lt;br /&gt;
|&lt;br /&gt;
| Returns the player object with the ID equal to integer.&lt;br /&gt;
|-&lt;br /&gt;
| findweapon(string)&lt;br /&gt;
|&lt;br /&gt;
| Returns the weapon object with the name equal to string.&lt;br /&gt;
|-&lt;br /&gt;
| format(string, string, ...)&lt;br /&gt;
|&lt;br /&gt;
| See [[Creation/Dev/Output_Methods#format.28.29_function|format()]]. &lt;br /&gt;
|- &lt;br /&gt;
| format2(string, array)&lt;br /&gt;
| &lt;br /&gt;
| Like format(), except that this expects the format string and an array of variables instead of passing the variables as separate parameters.&lt;br /&gt;
|-&lt;br /&gt;
| freefileresources(string)&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| freezeplayer(float)&lt;br /&gt;
|&lt;br /&gt;
| Freezes the player for the number of seconds specified by float.&lt;br /&gt;
|-&lt;br /&gt;
| get3dobjectat(float, float, boolean)&lt;br /&gt;
| [3D]&lt;br /&gt;
| Gets the 3d object at the specified screen position, third parameter true if it should do box collision.&lt;br /&gt;
|-&lt;br /&gt;
| get3dobjectatmouse(boolean)&lt;br /&gt;
| [3D]&lt;br /&gt;
| Gets the 3d object at the mouse.  Parameter true if it should do box collision.&lt;br /&gt;
|-&lt;br /&gt;
| get3dobjectbyray(string, string)&lt;br /&gt;
| [3D]&lt;br /&gt;
| returns object&lt;br /&gt;
|-&lt;br /&gt;
| get3dobjectsbybox(string, string)&lt;br /&gt;
| [3D]&lt;br /&gt;
| 1st parameter defines the box {minx,miny,minz, maxx,maxy,maxz}.  Second parameter specifies the type of object to find (e.g. &amp;quot;staticts,terrain,interior&amp;quot;)&lt;br /&gt;
|-&lt;br /&gt;
| get3dscreenposition(string, boolean)&lt;br /&gt;
| [3D]&lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| getanglesfromvector({x, y, z})&lt;br /&gt;
|&lt;br /&gt;
| Returns an array that contains the angles the 3D vector {x, y, z} makes with the X-Y and X-Z axes.&lt;br /&gt;
|-&lt;br /&gt;
| getascii(string)&lt;br /&gt;
|&lt;br /&gt;
| Returns the [http://www.asciitable.com/ ascii] code for string.&lt;br /&gt;
|-&lt;br /&gt;
| getbasepackage()&lt;br /&gt;
|&lt;br /&gt;
| returns object&lt;br /&gt;
|-&lt;br /&gt;
| getboxcenter(string)&lt;br /&gt;
|&lt;br /&gt;
| Returns an array containing the center of a 3D box specified by string ({x0,y0,z0,x1,y1,z1,...}).&lt;br /&gt;
|-&lt;br /&gt;
| getdesktopresolution()&lt;br /&gt;
|&lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| getdisplaydevicelist()&lt;br /&gt;
|&lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| getdownloadedupdatepackagesize()&lt;br /&gt;
|&lt;br /&gt;
| Returns the size of the downloaded update package.&lt;br /&gt;
|-&lt;br /&gt;
| getdownloadingpackage()&lt;br /&gt;
|&lt;br /&gt;
| Returns a reference to current update package being downloaded.&lt;br /&gt;
|-&lt;br /&gt;
| getdownloadingpackagescount()&lt;br /&gt;
|&lt;br /&gt;
| Returns a count of the number of update packages to download.&lt;br /&gt;
|-&lt;br /&gt;
| getdropz(string)&lt;br /&gt;
|&lt;br /&gt;
| returns float&lt;br /&gt;
|-&lt;br /&gt;
| getExtension(string)&lt;br /&gt;
|&lt;br /&gt;
| This function is the same as extractFileExt().  Takes in a file name, and returns its extension.&lt;br /&gt;
|-&lt;br /&gt;
| getfilemodtime(string)&lt;br /&gt;
|&lt;br /&gt;
| Returns a timestamp of when the file was last modified (in unix time compatible to timevar2). This function accepts both exact file path and plain file name.&lt;br /&gt;
|-&lt;br /&gt;
| gethttprequest(string, integer, string)&lt;br /&gt;
| &lt;br /&gt;
| returns object (This function is the same as requestHttp())&lt;br /&gt;
|-&lt;br /&gt;
| getimgheight(string)&lt;br /&gt;
|&lt;br /&gt;
| Returns the height (in pixels) of the filename indicated by string.&lt;br /&gt;
|-&lt;br /&gt;
| getimgpixel(string, integer, integer)&lt;br /&gt;
|&lt;br /&gt;
| returns object&lt;br /&gt;
|-&lt;br /&gt;
| getimgwidth(string)&lt;br /&gt;
|&lt;br /&gt;
| Returns the width(in pixels) of the filename indicated by string.&lt;br /&gt;
|-&lt;br /&gt;
| getkeycode(string)&lt;br /&gt;
|&lt;br /&gt;
| Returns the keycode of the key indicated by string.  The keycode returned can be used in keydown2().&lt;br /&gt;
|-&lt;br /&gt;
| getloginaccountname()&lt;br /&gt;
|&lt;br /&gt;
| Presumably used for the login server.  Use player.account instead.&lt;br /&gt;
|-&lt;br /&gt;
| getmapx(string)&lt;br /&gt;
| &lt;br /&gt;
| Gets the x coordinate location in the gmap of the level indicated by string.  The top-left level starts at (0, 0).&lt;br /&gt;
|-&lt;br /&gt;
| getmapy(string)&lt;br /&gt;
|&lt;br /&gt;
| Gets the y coordinate location in the gmap of the level indicated by string.  The top-left level starts at (0, 0).&lt;br /&gt;
|-&lt;br /&gt;
| getmusicfilename()&lt;br /&gt;
|&lt;br /&gt;
| Returns the filename of the music currently playing.&lt;br /&gt;
|-&lt;br /&gt;
| getmusicstatus()&lt;br /&gt;
|&lt;br /&gt;
| Returns the status of the music currently playing.&lt;br /&gt;
|-&lt;br /&gt;
| getmusictags()&lt;br /&gt;
|&lt;br /&gt;
| Returns the tags of the music currently playing.  This function can be used to retrieve the title and artist info of the music.&lt;br /&gt;
|-&lt;br /&gt;
| getnearestplayer(float, float)&lt;br /&gt;
|&lt;br /&gt;
| Deprecated.  Use findnearestplayer() instead.&lt;br /&gt;
|-&lt;br /&gt;
| getnearestplayers(float, float)&lt;br /&gt;
|&lt;br /&gt;
| Deprecated.  Use findnearestplayers() instead.&lt;br /&gt;
|-&lt;br /&gt;
| getpackagesdownloadcomplete()&lt;br /&gt;
|&lt;br /&gt;
| Returns 'true' if the package downloads are complete.&lt;br /&gt;
|-&lt;br /&gt;
| getpackagesdownloaded()&lt;br /&gt;
|&lt;br /&gt;
| Returns 'true' if the most recent packages are already downloaded.&lt;br /&gt;
|-&lt;br /&gt;
| getplatform()&lt;br /&gt;
|&lt;br /&gt;
| Returns the platform that the player is using.  (i.e. windows, mac, or linux)&lt;br /&gt;
|-&lt;br /&gt;
| getresolutionlist(string)&lt;br /&gt;
|&lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| getservername()&lt;br /&gt;
|&lt;br /&gt;
| Returns the name of the server the player is currently connected to.&lt;br /&gt;
|-&lt;br /&gt;
| getstringkeys(string)&lt;br /&gt;
|&lt;br /&gt;
| Returns an array of the variables that begins with the supplied string.&lt;br /&gt;
|-&lt;br /&gt;
| getterraintexture(float, float)&lt;br /&gt;
|&lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| getterraintextureindex(float, float)&lt;br /&gt;
|&lt;br /&gt;
| returns integer&lt;br /&gt;
|-&lt;br /&gt;
| gettextheight(float zoom, string style, string font)&lt;br /&gt;
|&lt;br /&gt;
| returns integer - The height in pixels of the text with the given zoom, style and font.&lt;br /&gt;
|-&lt;br /&gt;
| gettextwidth(float zoom, string style, string font, string text)&lt;br /&gt;
|&lt;br /&gt;
| returns integer - The width of the text with the given zoom, style, font and text.&lt;br /&gt;
|-&lt;br /&gt;
| gettileset()&lt;br /&gt;
|&lt;br /&gt;
| returns string - the current main tileset (pics1.png, picso.png etc.)&lt;br /&gt;
|-&lt;br /&gt;
| gettilesettype()&lt;br /&gt;
|&lt;br /&gt;
| returns integer - the current tileset type (pics1.png:0, picso.png:5 etc.)&lt;br /&gt;
|-&lt;br /&gt;
| gettotalupdatepackagesize()&lt;br /&gt;
|&lt;br /&gt;
| returns integer - The total size of the update packages.&lt;br /&gt;
|-&lt;br /&gt;
| getupdatepackage(string name)&lt;br /&gt;
|&lt;br /&gt;
| returns object - A reference to the update package with the given name.&lt;br /&gt;
|-&lt;br /&gt;
| getvectorfromangles(float, float)&lt;br /&gt;
|&lt;br /&gt;
| returns string&lt;br /&gt;
|- &lt;br /&gt;
| getz(float, float)&lt;br /&gt;
|&lt;br /&gt;
| returns float&lt;br /&gt;
|-&lt;br /&gt;
| graalcontrolhasfocus(bool)&lt;br /&gt;
|&lt;br /&gt;
| returns boolean - Whether or not the graal control has focus.  Parameter says if it should also check if the chat bar has the focus&lt;br /&gt;
|-&lt;br /&gt;
| hideplayer(float time)&lt;br /&gt;
|&lt;br /&gt;
| Hides player for the specified amount of time.&lt;br /&gt;
|-&lt;br /&gt;
| hidesword(float time)&lt;br /&gt;
|&lt;br /&gt;
| Hides the player's sword for the specified amount of time.&lt;br /&gt;
|-&lt;br /&gt;
| hitnpc(int index, float halfhearts, float fromx, float fromy)&lt;br /&gt;
|&lt;br /&gt;
| Hit's npc with specified index causing the specified amount of halfhearts in damage. It also knocks back the npc based on the from X and Y coordinate passed to it.&lt;br /&gt;
|-&lt;br /&gt;
| hitobjects(float power, float x, float y)&lt;br /&gt;
|&lt;br /&gt;
| Hurts all the npcs with the specified power on the position passed to it.&lt;br /&gt;
|-&lt;br /&gt;
| hitplayer(int index, float halfhearts, float fromx, float fromy)&lt;br /&gt;
|&lt;br /&gt;
| Hit's player with specified index causing the specified amount of halfhearts in damage. It also knocks back the player based on the from X and Y coordinate passed to it. Use 0 as the index to hit your own player.&lt;br /&gt;
|-&lt;br /&gt;
| isadminguild(str guildname)&lt;br /&gt;
| &lt;br /&gt;
| returns boolean - If the passed guildname is an admin guild or not.&lt;br /&gt;
|-&lt;br /&gt;
| isclassloaded(str classname)&lt;br /&gt;
|&lt;br /&gt;
| returns boolean - If the passed classname is loaded for the client.&lt;br /&gt;
|-&lt;br /&gt;
| iscursoron()&lt;br /&gt;
|&lt;br /&gt;
| returns boolean - If the cursor is on or not.&lt;br /&gt;
|-&lt;br /&gt;
| isdevicefullscreenonly(str device)&lt;br /&gt;
|&lt;br /&gt;
| returns boolean - If the device is full screen only or not.&lt;br /&gt;
|-&lt;br /&gt;
| isdownloading(str filename)&lt;br /&gt;
|&lt;br /&gt;
| returns boolean - If a file is currently downloaded or requested from the server.&lt;br /&gt;
|-&lt;br /&gt;
| isdownloadingfiles()&lt;br /&gt;
|&lt;br /&gt;
| returns boolean - checks if Graal is currently downloading or requesting files from the server.&lt;br /&gt;
|-&lt;br /&gt;
| isfullscreenmode()&lt;br /&gt;
|&lt;br /&gt;
| returns boolean - checks if Graal is currently in fullscreen mode.&lt;br /&gt;
|-&lt;br /&gt;
| isimgrectangletransparent(str, int, int, int, int)&lt;br /&gt;
| &lt;br /&gt;
| returns boolean&lt;br /&gt;
|-&lt;br /&gt;
| ismusicplaying()&lt;br /&gt;
| &lt;br /&gt;
| returns boolean&lt;br /&gt;
|-&lt;br /&gt;
| isobject(str)&lt;br /&gt;
| &lt;br /&gt;
| returns boolean&lt;br /&gt;
|-&lt;br /&gt;
| issoundplaying(str)&lt;br /&gt;
| &lt;br /&gt;
| returns boolean&lt;br /&gt;
|-&lt;br /&gt;
| keydown(int)&lt;br /&gt;
| &lt;br /&gt;
| returns boolean&lt;br /&gt;
|-&lt;br /&gt;
| keydown2(int, bool)&lt;br /&gt;
| &lt;br /&gt;
| returns boolean&lt;br /&gt;
|-&lt;br /&gt;
| keydown2global(int, bool)&lt;br /&gt;
| &lt;br /&gt;
| returns boolean&lt;br /&gt;
|-&lt;br /&gt;
| keydownglobal(int)&lt;br /&gt;
| &lt;br /&gt;
| returns boolean&lt;br /&gt;
|-&lt;br /&gt;
| keyname(int)&lt;br /&gt;
| &lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| lay2(str, float, float)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| lightscene()&lt;br /&gt;
| &lt;br /&gt;
| returns boolean&lt;br /&gt;
|-&lt;br /&gt;
| loadclass(str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| loadmap(str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| loadtranslation(str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| lowercase(str)&lt;br /&gt;
| &lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| ltmfs(bool)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| ltmmax(float, float)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| ltmmin(float, float)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| makescreenshot2(str, int, float, float, float, int, int)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| matrixcreate(str, str)&lt;br /&gt;
| &lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| matrixcreatefromeuler(str)&lt;br /&gt;
| &lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| matrixmulpoint(str, str)&lt;br /&gt;
| &lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| matrixmultiply(str, str)&lt;br /&gt;
| &lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| matrixmulvector(str, str)&lt;br /&gt;
| &lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| md5(str)&lt;br /&gt;
| &lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| noplayerkilling()&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| onwall(float, float)&lt;br /&gt;
| &lt;br /&gt;
| returns boolean&lt;br /&gt;
|-&lt;br /&gt;
| onwall2(float, float, float, float)&lt;br /&gt;
| &lt;br /&gt;
| returns boolean&lt;br /&gt;
|-&lt;br /&gt;
| onwater(float, float)&lt;br /&gt;
| &lt;br /&gt;
| returns boolean&lt;br /&gt;
|-&lt;br /&gt;
| onwater2(float, float, float, float)&lt;br /&gt;
| &lt;br /&gt;
| returns boolean&lt;br /&gt;
|-&lt;br /&gt;
| opengraalurl(str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| openurl(str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| openurl2(str, int, int)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| play(str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| play2(str, float, float, float)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| play3d(str, bool, str, str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| playlooped(str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| playlooped2(str, float, float, float)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| popdialog()&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| pushdialog(obj)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| putleaps(int, float, float)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| radtodeg(float)&lt;br /&gt;
| &lt;br /&gt;
| returns float&lt;br /&gt;
|-&lt;br /&gt;
| randomstring(str)&lt;br /&gt;
| &lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| removetiledefs(str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| replaceani(str, str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| requestfiledeletion(str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| requestfilerename(str, str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| requestfilesmove(str, str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| requesthttp(str, int, str)&lt;br /&gt;
| &lt;br /&gt;
| returns object&lt;br /&gt;
|-&lt;br /&gt;
| requesttext(str, str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| requesturl(str)&lt;br /&gt;
| &lt;br /&gt;
| returns object&lt;br /&gt;
|-&lt;br /&gt;
| resetfocus()&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| rotationadd(str, str)&lt;br /&gt;
| &lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| rotationaddeuler(str, str)&lt;br /&gt;
| &lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| rotationfromeuler(str)&lt;br /&gt;
| &lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| rotationsub(str, str)&lt;br /&gt;
| &lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| rotationtoeuler(str)&lt;br /&gt;
| &lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| rungarbagecollector()&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| savelog(str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| say(int)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| say2(str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| screenx(float, float)&lt;br /&gt;
| &lt;br /&gt;
| returns integer&lt;br /&gt;
|-&lt;br /&gt;
| screeny(float, float)&lt;br /&gt;
| &lt;br /&gt;
| returns integer&lt;br /&gt;
|-&lt;br /&gt;
| selectfilefordownload(str)&lt;br /&gt;
| &lt;br /&gt;
| opens the select&lt;br /&gt;
|-&lt;br /&gt;
| selectfileforupload()&lt;br /&gt;
| &lt;br /&gt;
| opens the select&lt;br /&gt;
|-&lt;br /&gt;
| sendrpgmessage(str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| sendtext(str, str, params...)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| sendtorc(str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| serverwarp(str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| setani(str, str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| setbeltcolor(str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| setcoatcolor(str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| setcontentcontrol(obj)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| setcursor2(str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| seteffect(float, float, float, float)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| setfocus(float, float)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| setfogcolors(obj)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| setgender(str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| sethead(str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| setinteriorrendermode(int)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| setletters(str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| setmap(str, str, float, float)&lt;br /&gt;
| &lt;br /&gt;
| sets a text map (you can see the tiles of other levels but not the npcs), parameters are text file with level names, the map image (not used anymore), default x and y for the head icons; use gmaps if possible instead of this&lt;br /&gt;
|-&lt;br /&gt;
| setminimap(str, str, float, float)&lt;br /&gt;
| &lt;br /&gt;
| parameters are a text file with level names, the image, default x and y; use gmaps if possible instead of this&lt;br /&gt;
|-&lt;br /&gt;
| setmusicvolume(float, float)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| setplayerdir(str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| setshield(str, int)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| setshoecolor(str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| setshootparams(str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| setskincolor(str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| setskybandcolors(obj)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| setskybandsizes(obj)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| setsleevecolor(str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| setspritesimage(str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| setstatusimage(str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| setsuncolors(obj)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| setsword(str, int)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| setterrainrendermode(int)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| showstats(int)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| spyfire(int, int)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| startrecordvideo()&lt;br /&gt;
| &lt;br /&gt;
| returns boolean&lt;br /&gt;
|-&lt;br /&gt;
| stopmidi()&lt;br /&gt;
| &lt;br /&gt;
| same as stopmusic(), kept for compatibility&lt;br /&gt;
|-&lt;br /&gt;
| stopmusic()&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| stoprecordvideo()&lt;br /&gt;
| &lt;br /&gt;
| returns boolean&lt;br /&gt;
|-&lt;br /&gt;
| stopsound(str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| strcmp(str, str)&lt;br /&gt;
| &lt;br /&gt;
| returns integer&lt;br /&gt;
|-&lt;br /&gt;
| strequals(str, str)&lt;br /&gt;
| &lt;br /&gt;
| returns boolean&lt;br /&gt;
|-&lt;br /&gt;
| switchtoopengl()&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| synctimeofday(float, float)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| takeplayercarry()&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| takeplayerhorse()&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| testplayer(float, float)&lt;br /&gt;
| &lt;br /&gt;
| returns integer&lt;br /&gt;
|-&lt;br /&gt;
| trace(str)&lt;br /&gt;
| &lt;br /&gt;
| same as echo()&lt;br /&gt;
|-&lt;br /&gt;
| triggeraction(float, float, str, params...)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| triggerserver(str, str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| update3dterrain(float, float, float, float)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| updateboard(int, int, int, int)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| updateterrain()&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| updatevisibledistance()&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| uploadfile(str)&lt;br /&gt;
| &lt;br /&gt;
| uploads a file, you must provide the full path provided by a onDropFiles() event, also this will only work if the scripted RC has currently a file browser window open; once the file is uploaded an onFilesUploaded event will be invoked&lt;br /&gt;
|-&lt;br /&gt;
| uppercase(str)&lt;br /&gt;
| &lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| vectoradd(str, str)&lt;br /&gt;
| &lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| vectorcross(str, str)&lt;br /&gt;
| &lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| vectordist(str, str)&lt;br /&gt;
| &lt;br /&gt;
| returns float&lt;br /&gt;
|-&lt;br /&gt;
| vectordot(str, str)&lt;br /&gt;
| &lt;br /&gt;
| returns float&lt;br /&gt;
|-&lt;br /&gt;
| vectorlen(str)&lt;br /&gt;
| &lt;br /&gt;
| returns float&lt;br /&gt;
|-&lt;br /&gt;
| vectornormalize(str)&lt;br /&gt;
| &lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| vectororthobasis(str)&lt;br /&gt;
| &lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| vectorscale(str, float)&lt;br /&gt;
| &lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| vectorsub(str, str)&lt;br /&gt;
| &lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| worldx(float, float)&lt;br /&gt;
| &lt;br /&gt;
| returns float&lt;br /&gt;
|-&lt;br /&gt;
| worldy(float, float)&lt;br /&gt;
| &lt;br /&gt;
| returns float&lt;br /&gt;
|-&lt;br /&gt;
| wraptext(int, str, str)&lt;br /&gt;
| &lt;br /&gt;
| returns object&lt;br /&gt;
|-&lt;br /&gt;
| wraptext2(int, float, str, str)&lt;br /&gt;
| &lt;br /&gt;
| returns object&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Objects=&lt;br /&gt;
{{:Creation/Dev/Script/Client}}&lt;br /&gt;
&lt;br /&gt;
=GUI Objects=&lt;br /&gt;
GUI Objects are currently well documented starting here [[Creation/Dev/Script/Client/GuiControl]].&lt;br /&gt;
&lt;br /&gt;
=Preference Variables=&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;2&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
| '''Variable'''&lt;br /&gt;
|width=&amp;quot;100px&amp;quot;|'''Type'''&lt;br /&gt;
| '''Notes'''&lt;br /&gt;
|-&lt;br /&gt;
| $pref::audio::choosenvoicecodec&lt;br /&gt;
| &lt;br /&gt;
| integer&lt;br /&gt;
|-&lt;br /&gt;
| $pref::audio::microactivatebyvolume&lt;br /&gt;
| &lt;br /&gt;
| boolean&lt;br /&gt;
|-&lt;br /&gt;
| $pref::audio::microactivationlevel&lt;br /&gt;
| &lt;br /&gt;
| integer&lt;br /&gt;
|-&lt;br /&gt;
| $pref::audio::microinputdevice&lt;br /&gt;
| &lt;br /&gt;
| integer&lt;br /&gt;
|-&lt;br /&gt;
| $pref::audio::microon&lt;br /&gt;
| &lt;br /&gt;
| boolean&lt;br /&gt;
|-&lt;br /&gt;
| $pref::audio::microvolumefactor&lt;br /&gt;
| &lt;br /&gt;
| integer&lt;br /&gt;
|-&lt;br /&gt;
| $pref::audio::midivolume&lt;br /&gt;
| &lt;br /&gt;
| integer&lt;br /&gt;
|-&lt;br /&gt;
| $pref::audio::mp3volume&lt;br /&gt;
| &lt;br /&gt;
| integer&lt;br /&gt;
|-&lt;br /&gt;
| $pref::audio::radiovolume&lt;br /&gt;
| &lt;br /&gt;
| integer&lt;br /&gt;
|-&lt;br /&gt;
| $pref::audio::reversestereo&lt;br /&gt;
| &lt;br /&gt;
| boolean&lt;br /&gt;
|-&lt;br /&gt;
| $pref::audio::sfxvolume&lt;br /&gt;
| &lt;br /&gt;
| integer&lt;br /&gt;
|-&lt;br /&gt;
| $pref::audio::voicevolume&lt;br /&gt;
| &lt;br /&gt;
| integer&lt;br /&gt;
|-&lt;br /&gt;
| $pref::capture::allowbyscript&lt;br /&gt;
| &lt;br /&gt;
| boolean [R]&lt;br /&gt;
|-&lt;br /&gt;
| $pref::capture::area&lt;br /&gt;
| &lt;br /&gt;
| string&lt;br /&gt;
|-&lt;br /&gt;
| $pref::capture::audiobitrate&lt;br /&gt;
| &lt;br /&gt;
| integer&lt;br /&gt;
|-&lt;br /&gt;
| $pref::capture::disabledaynight&lt;br /&gt;
| &lt;br /&gt;
| boolean&lt;br /&gt;
|-&lt;br /&gt;
| $pref::capture::format&lt;br /&gt;
| &lt;br /&gt;
| string&lt;br /&gt;
|-&lt;br /&gt;
| $pref::capture::fps&lt;br /&gt;
| &lt;br /&gt;
| integer&lt;br /&gt;
|-&lt;br /&gt;
| $pref::capture::hideinterface&lt;br /&gt;
| &lt;br /&gt;
| boolean&lt;br /&gt;
|-&lt;br /&gt;
| $pref::capture::recordaudio&lt;br /&gt;
| &lt;br /&gt;
| boolean&lt;br /&gt;
|-&lt;br /&gt;
| $pref::capture::showmouse&lt;br /&gt;
| &lt;br /&gt;
| boolean&lt;br /&gt;
|-&lt;br /&gt;
| $pref::capture::size&lt;br /&gt;
| &lt;br /&gt;
| string&lt;br /&gt;
|-&lt;br /&gt;
| $pref::capture::videobitrate&lt;br /&gt;
| &lt;br /&gt;
| integer&lt;br /&gt;
|-&lt;br /&gt;
| $pref::graal::allowglobalpms&lt;br /&gt;
| &lt;br /&gt;
| boolean&lt;br /&gt;
|-&lt;br /&gt;
| $pref::graal::automapping&lt;br /&gt;
| &lt;br /&gt;
| boolean&lt;br /&gt;
|-&lt;br /&gt;
| $pref::graal::defaultfontname&lt;br /&gt;
| &lt;br /&gt;
| string&lt;br /&gt;
|-&lt;br /&gt;
| $pref::graal::defaultfontsize&lt;br /&gt;
| &lt;br /&gt;
| integer&lt;br /&gt;
|-&lt;br /&gt;
| $pref::graal::dontconnectlevels&lt;br /&gt;
| &lt;br /&gt;
| boolean&lt;br /&gt;
|-&lt;br /&gt;
| $pref::graal::dontloadlistheads&lt;br /&gt;
| &lt;br /&gt;
| boolean&lt;br /&gt;
|-&lt;br /&gt;
| $pref::graal::dontsavepasswords&lt;br /&gt;
| &lt;br /&gt;
| boolean&lt;br /&gt;
|-&lt;br /&gt;
| $pref::graal::dontsavepms&lt;br /&gt;
| &lt;br /&gt;
| boolean&lt;br /&gt;
|-&lt;br /&gt;
| $pref::graal::fixedport&lt;br /&gt;
| &lt;br /&gt;
| boolean&lt;br /&gt;
|-&lt;br /&gt;
| $pref::graal::fixedudpport&lt;br /&gt;
| &lt;br /&gt;
| integer&lt;br /&gt;
|-&lt;br /&gt;
| $pref::graal::language&lt;br /&gt;
| &lt;br /&gt;
| string&lt;br /&gt;
|-&lt;br /&gt;
| $pref::graal::limitnicknames&lt;br /&gt;
| &lt;br /&gt;
| boolean&lt;br /&gt;
|-&lt;br /&gt;
| $pref::graal::loadbuddylistfromserver&lt;br /&gt;
| &lt;br /&gt;
| boolean&lt;br /&gt;
|-&lt;br /&gt;
| $pref::graal::nicknamelimit&lt;br /&gt;
| &lt;br /&gt;
| integer&lt;br /&gt;
|-&lt;br /&gt;
| $pref::graal::nomassmessages&lt;br /&gt;
| &lt;br /&gt;
| boolean&lt;br /&gt;
|-&lt;br /&gt;
| $pref::graal::notoalls&lt;br /&gt;
| &lt;br /&gt;
| boolean&lt;br /&gt;
|-&lt;br /&gt;
| $pref::graal::noudp&lt;br /&gt;
| &lt;br /&gt;
| boolean&lt;br /&gt;
|-&lt;br /&gt;
| $pref::graal::showyourselfonbuddylists&lt;br /&gt;
| &lt;br /&gt;
| boolean&lt;br /&gt;
|-&lt;br /&gt;
| $pref::input::mousesensitivity&lt;br /&gt;
| &lt;br /&gt;
| float&lt;br /&gt;
|-&lt;br /&gt;
| $pref::interior::lockarrays&lt;br /&gt;
| &lt;br /&gt;
| boolean&lt;br /&gt;
|-&lt;br /&gt;
| $pref::video::defaultguistyle&lt;br /&gt;
| &lt;br /&gt;
| string&lt;br /&gt;
|-&lt;br /&gt;
| $pref::video::detailfactor&lt;br /&gt;
| &lt;br /&gt;
| float&lt;br /&gt;
|-&lt;br /&gt;
| $pref::video::fogdistance&lt;br /&gt;
| &lt;br /&gt;
| float&lt;br /&gt;
|-&lt;br /&gt;
| $pref::video::fullscreenmode&lt;br /&gt;
| &lt;br /&gt;
| string&lt;br /&gt;
|-&lt;br /&gt;
| $pref::video::resolution&lt;br /&gt;
| &lt;br /&gt;
| integer&lt;br /&gt;
|-&lt;br /&gt;
| $pref::video::screenshotformat&lt;br /&gt;
| &lt;br /&gt;
| string&lt;br /&gt;
|-&lt;br /&gt;
| $pref::video::visibledistance&lt;br /&gt;
| &lt;br /&gt;
| float&lt;br /&gt;
|-&lt;br /&gt;
| $pref::video::windowmode&lt;br /&gt;
| &lt;br /&gt;
| string&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Fowlplay4</name></author>
	</entry>
	<entry>
		<id>https://graalonline.net/index.php?title=Creation/Dev/Script/Clientside_Functions&amp;diff=18129</id>
		<title>Creation/Dev/Script/Clientside Functions</title>
		<link rel="alternate" type="text/html" href="https://graalonline.net/index.php?title=Creation/Dev/Script/Clientside_Functions&amp;diff=18129"/>
		<updated>2011-04-09T19:46:06Z</updated>

		<summary type="html">&lt;p&gt;Fowlplay4: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Scripting Reference]]&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;2&amp;quot; width=&amp;quot;50%&amp;quot;&lt;br /&gt;
|[R]&lt;br /&gt;
| denotes it is read-only.&lt;br /&gt;
|-&lt;br /&gt;
|[3D]&lt;br /&gt;
| denotes it is a Graal3D function.&lt;br /&gt;
|-&lt;br /&gt;
|[opengl]&lt;br /&gt;
| denotes it is functional only in opengl mode.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Variables==&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;2&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
| '''Variable'''&lt;br /&gt;
|width=&amp;quot;100px&amp;quot;|'''Type'''&lt;br /&gt;
| '''Notes'''&lt;br /&gt;
|-&lt;br /&gt;
| allfeatures&lt;br /&gt;
| ''integer [R]''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| allplayerscount&lt;br /&gt;
| ''integer [R]''&lt;br /&gt;
| Returns the count of all players on your playerlist, including IRC bots.&lt;br /&gt;
|-&lt;br /&gt;
| allrenderobjecttypes&lt;br /&gt;
| ''integer [R]''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| allstats &lt;br /&gt;
| ''integer [R]''&lt;br /&gt;
| Used with showstats() in order to show all stats.&lt;br /&gt;
|-&lt;br /&gt;
| canspin&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| Returns true of false if the player has spin attack.&lt;br /&gt;
|-&lt;br /&gt;
| carriesblackstone&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| Returns whether the player is carrying a black stone.&lt;br /&gt;
|-&lt;br /&gt;
| carriesbush&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| Returns whether the player is carrying a bush.&lt;br /&gt;
|-&lt;br /&gt;
| carriesnpc&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| Returns whether the player is carrying an NPC&lt;br /&gt;
|-&lt;br /&gt;
| carriessign&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| Returns whether the player is carrying a sign.&lt;br /&gt;
|-&lt;br /&gt;
| carriesstone&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| Returns whether the player is carrying a stone.&lt;br /&gt;
|-&lt;br /&gt;
| carriesvase&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| Returns whether the player is carrying a vase.&lt;br /&gt;
|-&lt;br /&gt;
| downloadfile&lt;br /&gt;
| ''string [R]''&lt;br /&gt;
| Returns the currently downloaded file.&lt;br /&gt;
|-&lt;br /&gt;
| downloadpos&lt;br /&gt;
| ''integer [R]''&lt;br /&gt;
| Returns the position of the currently downloaded file.&lt;br /&gt;
|-&lt;br /&gt;
| downloadsize&lt;br /&gt;
| ''integer [R]''&lt;br /&gt;
| Returns the size of the currently downloaded file.&lt;br /&gt;
|-&lt;br /&gt;
| editingmission&lt;br /&gt;
| ''boolean''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| emoticonchar&lt;br /&gt;
| ''string [R]''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| focusx&lt;br /&gt;
| ''float [R]''&lt;br /&gt;
| Position of the camera in tile units.&lt;br /&gt;
|-&lt;br /&gt;
| focusy&lt;br /&gt;
| ''float [R]''&lt;br /&gt;
| Position of the camera in tile units.&lt;br /&gt;
|-&lt;br /&gt;
| ghostsnear&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| If a ghost(observer) is in the same level as the player.&lt;br /&gt;
|-&lt;br /&gt;
| graalplugincookie&lt;br /&gt;
| ''string [R]''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| graalversion&lt;br /&gt;
| ''float [R]''&lt;br /&gt;
| Version of Graal the player is using.&lt;br /&gt;
|-&lt;br /&gt;
| gravity&lt;br /&gt;
| ''float''&lt;br /&gt;
| The gravity value that effects how fast projectiles fall. It universally effects all projectiles.&lt;br /&gt;
|-&lt;br /&gt;
| installedlanguages&lt;br /&gt;
| ''string [R]''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| isapplicationactive&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| Is Graal window active?&lt;br /&gt;
|-&lt;br /&gt;
| iscarrying&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| Returns true of false if the player is carrying something.&lt;br /&gt;
|-&lt;br /&gt;
| isfocused&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| isgraal3d&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| isgraalplugin&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| isleader&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| Player was the first to enter the level.&lt;br /&gt;
|-&lt;br /&gt;
| isonmap&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| Player is on a map.&lt;br /&gt;
|-&lt;br /&gt;
| isopengl&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| Graal is in opengl mode.&lt;br /&gt;
|-&lt;br /&gt;
| isrecordingvideo&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| Player is currently recording(alt+6) Graal.&lt;br /&gt;
|-&lt;br /&gt;
| jpegquality&lt;br /&gt;
| ''integer''&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| isgraalplugin&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| lastdownloadfile&lt;br /&gt;
| ''string [R]''&lt;br /&gt;
| The last file downloaded.&lt;br /&gt;
|-&lt;br /&gt;
| leftmousebutton&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| If the left mouse button is pressed.&lt;br /&gt;
|-&lt;br /&gt;
| leftmousebuttonglobal&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| If the left mouse button is pressed. Returns whether mouse is in focus of GUIs or not.&lt;br /&gt;
|-&lt;br /&gt;
| levelorgx&lt;br /&gt;
| ''float [R]''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| levelorgy&lt;br /&gt;
| ''float [R]''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| lighteffectsenabled&lt;br /&gt;
| ''boolean''&lt;br /&gt;
| Whether the player has their lights enabled via options.&lt;br /&gt;
|-&lt;br /&gt;
| middlemousebutton&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| If the middle mouse button is pressed&lt;br /&gt;
|-&lt;br /&gt;
| middlemousebuttonglobal&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| If the middle mouse button is pressed. Returns whether mouse is in focus of GUIs or not.&lt;br /&gt;
|-&lt;br /&gt;
| mousebuttons &lt;br /&gt;
| ''integer [R]''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| mousebuttonsglobal&lt;br /&gt;
| ''integer [R]''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| mousepitch&lt;br /&gt;
| ''float [R] [3D]''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| mousescreenx &lt;br /&gt;
| ''integer''&lt;br /&gt;
| Position of the mouse in the Graal screen, in pixel units on the x-axis.&lt;br /&gt;
|-&lt;br /&gt;
| mousescreeny &lt;br /&gt;
| ''integer''&lt;br /&gt;
| Position of the mouse in the Graal screen, in pixel units on the y-axis.&lt;br /&gt;
|-&lt;br /&gt;
| mousewheeldelta&lt;br /&gt;
| ''integer [R]''&lt;br /&gt;
| How much the mouse wheel has been scrolled.&lt;br /&gt;
|-&lt;br /&gt;
| mousex&lt;br /&gt;
| ''float''&lt;br /&gt;
| Position of the mouse in the level, in tile units, on the x-axis.&lt;br /&gt;
|-&lt;br /&gt;
| mousey&lt;br /&gt;
| ''float''&lt;br /&gt;
| Position of the mouse in the level, in tile units, on the y-axis&lt;br /&gt;
|-&lt;br /&gt;
| mouseyaw&lt;br /&gt;
| ''float [R] [3D]''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| musiclen &lt;br /&gt;
| ''integer [R]''&lt;br /&gt;
| Length of current playing '''MP3'''&lt;br /&gt;
|-&lt;br /&gt;
| musicpos&lt;br /&gt;
| ''integer [R]''&lt;br /&gt;
| Position of current playing '''MP3'''&lt;br /&gt;
|-&lt;br /&gt;
| particleeffectsenabled&lt;br /&gt;
| ''boolean''&lt;br /&gt;
| If player has particles enabled in their options.&lt;br /&gt;
|-&lt;br /&gt;
| rightmousebutton &lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| If the right mouse button is pressed&lt;br /&gt;
|-&lt;br /&gt;
| rightmousebuttonglobal &lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| If the right mouse button is pressed. Returns whether mouse is in focus of GUIs or not.&lt;br /&gt;
|-&lt;br /&gt;
| screenheight&lt;br /&gt;
| ''integer [R]''&lt;br /&gt;
| Height of the Graal screen in pixel units.&lt;br /&gt;
|-&lt;br /&gt;
| screenwidth&lt;br /&gt;
| ''integer [R]''&lt;br /&gt;
| Width of the Graal screen in pixel units.&lt;br /&gt;
|-&lt;br /&gt;
| scriptedcontrols &lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| scriptedplayerlist&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| Whether the player has the scripted playerlist enabled.&lt;br /&gt;
|-&lt;br /&gt;
| scriptlogwritetoreadonly&lt;br /&gt;
| ''boolean''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| selectedlistplayers&lt;br /&gt;
| ''object''&lt;br /&gt;
| An object of all players selected on the playerlist.&lt;br /&gt;
|-&lt;br /&gt;
| selectedsword &lt;br /&gt;
| ''integer''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| selectedweapon &lt;br /&gt;
| ''integer''&lt;br /&gt;
| Index of the currently selected weapon.&lt;br /&gt;
|-&lt;br /&gt;
| servername&lt;br /&gt;
| ''string [R]''&lt;br /&gt;
| Name of the server.&lt;br /&gt;
|-&lt;br /&gt;
| serverstartconnect &lt;br /&gt;
| ''string''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| serverstartparams &lt;br /&gt;
| ''string''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| shotbybaddy&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| If the player is shot by a baddy(default) arrow.&lt;br /&gt;
|-&lt;br /&gt;
| shotbyplayer&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| If the player is shot by another players arrow.&lt;br /&gt;
|-&lt;br /&gt;
| showterraingrid&lt;br /&gt;
| ''boolean''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| spritesimage&lt;br /&gt;
| ''string''&lt;br /&gt;
| Filename of the currently set sprite image.&lt;br /&gt;
|-&lt;br /&gt;
| statusimage&lt;br /&gt;
| ''string''&lt;br /&gt;
| Filename of the currently set state image.&lt;br /&gt;
|-&lt;br /&gt;
| timevar&lt;br /&gt;
| ''integer [R].''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| timevar2&lt;br /&gt;
| ''float [R]''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| timevar3&lt;br /&gt;
| ''float [R] [3D]''&lt;br /&gt;
| Synchronized time which works on both server and client-side, precision is milliseconds.&lt;br /&gt;
|-&lt;br /&gt;
| wasshooted&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| If the player is shot by a default arrow.&lt;br /&gt;
|-&lt;br /&gt;
| waterheight&lt;br /&gt;
| ''float''&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| weapons&lt;br /&gt;
| ''object [R]''&lt;br /&gt;
| all the players weapons, this includes login inherited weapons.&lt;br /&gt;
|-&lt;br /&gt;
| weaponsenabled&lt;br /&gt;
| ''boolean''&lt;br /&gt;
| If the players weapons are enabled via disableweapons()/enableweapons().&lt;br /&gt;
|-&lt;br /&gt;
| weathereffectsenabled&lt;br /&gt;
| ''boolean''&lt;br /&gt;
| If weather is enabled in the players options.&lt;br /&gt;
|-&lt;br /&gt;
| worldclockstopped&lt;br /&gt;
| ''boolean''&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| worldhour &lt;br /&gt;
| ''integer''&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| worldminute &lt;br /&gt;
| ''float''&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| worldminutesofday &lt;br /&gt;
| ''float''&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| worldrealsecondsperday &lt;br /&gt;
| ''float''&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Functions=&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;2&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
| '''Function'''&lt;br /&gt;
|width=&amp;quot;100px&amp;quot;|'''Type'''&lt;br /&gt;
| '''Notes'''&lt;br /&gt;
|-&lt;br /&gt;
| addcontrol(object)&lt;br /&gt;
|&lt;br /&gt;
| adds 'object' to the parent control.&lt;br /&gt;
|-&lt;br /&gt;
| addmaterialmapping(string, string)&lt;br /&gt;
| [3D]&lt;br /&gt;
| returns boolean.&lt;br /&gt;
|-&lt;br /&gt;
| addtiledef(string image, string prefix, int format)&lt;br /&gt;
| &lt;br /&gt;
| Adds a tileset definition with the supplied tileset image, level prefix and tileset format (0=pics1, 1=new world, 5=terrain).&lt;br /&gt;
|-&lt;br /&gt;
| addtiledef2(string image, string prefix, int x, int y)&lt;br /&gt;
| &lt;br /&gt;
| Overlays an image on the tileset with the supplied tileset image and level prefix. Parameters 'x' and 'y' represent the x and y position on the tileset of where to place the new image.&lt;br /&gt;
|-&lt;br /&gt;
| aindexof(float, array)&lt;br /&gt;
| &lt;br /&gt;
| Returns integer - the position of 'float' in the array.&lt;br /&gt;
|-&lt;br /&gt;
| arccos(float)&lt;br /&gt;
| &lt;br /&gt;
| Returns float - the arc cosine of 'float'.&lt;br /&gt;
|-&lt;br /&gt;
| arcsin(float)&lt;br /&gt;
| &lt;br /&gt;
| Returns float - the arc sine of 'float'.&lt;br /&gt;
|-&lt;br /&gt;
| attachplayertoobj(integer1, integer2)&lt;br /&gt;
| &lt;br /&gt;
| Attaches the player to the object with the matching ID where integer1 is the object type (currently only NPCs - 0) and integer2 is the ID of the desired object.&lt;br /&gt;
|-&lt;br /&gt;
| base64decode(string)&lt;br /&gt;
| &lt;br /&gt;
| Returns string - Decodes a base64 string.&lt;br /&gt;
|-&lt;br /&gt;
| base64encode(string)&lt;br /&gt;
| &lt;br /&gt;
| Returns string - Encodes string in to several characters of a 64 printable character set (A-Z, a-z, 0-9, + and /, while &amp;quot;=&amp;quot; is a special suffix code)&lt;br /&gt;
|-&lt;br /&gt;
| boxcontains(string, string)&lt;br /&gt;
| &lt;br /&gt;
| returns boolean.&lt;br /&gt;
|-&lt;br /&gt;
| boxcontainsvector(string, string)&lt;br /&gt;
| &lt;br /&gt;
| returns boolean&lt;br /&gt;
|-&lt;br /&gt;
| boxintersect(string, string)&lt;br /&gt;
| &lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| boxoverlaps(string, string)&lt;br /&gt;
| &lt;br /&gt;
| returns boolean&lt;br /&gt;
|-&lt;br /&gt;
| boxscale(string, string)&lt;br /&gt;
| &lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| callnpc(int index, string function)&lt;br /&gt;
| &lt;br /&gt;
| Calls a function from an NPC where 'index' is the NPC's index and 'function' is the function name.&lt;br /&gt;
|-&lt;br /&gt;
| callweapon(int index, string function)&lt;br /&gt;
| &lt;br /&gt;
| Calls a function from a weapon where 'index' is the weapon's index and 'function' is the function name.&lt;br /&gt;
|-&lt;br /&gt;
| castray({x,y,x}, {x,y,z}, string type)&lt;br /&gt;
| [3D]&lt;br /&gt;
| returns object - specify the start and end of the ray, and the object types (e.g. &amp;quot;staticts,terrain,interior&amp;quot;)&lt;br /&gt;
|-&lt;br /&gt;
| checksum(string)&lt;br /&gt;
| &lt;br /&gt;
| returns float&lt;br /&gt;
|-&lt;br /&gt;
| contains(string2, string1)&lt;br /&gt;
| &lt;br /&gt;
| returns boolean - True if string1 is contained within string2.&lt;br /&gt;
|-&lt;br /&gt;
| copystrings(string, string)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| cursoroff()&lt;br /&gt;
| [opengl]&lt;br /&gt;
| Disables the visible mouse cursor.&lt;br /&gt;
|-&lt;br /&gt;
| cursoron()&lt;br /&gt;
| [opengl]&lt;br /&gt;
| Enables the visible mouse cursor.&lt;br /&gt;
|-&lt;br /&gt;
| degtorad(float)&lt;br /&gt;
| &lt;br /&gt;
| returns float - Converts angle measurements of degrees to radians&lt;br /&gt;
|-&lt;br /&gt;
| detachplayer()&lt;br /&gt;
| &lt;br /&gt;
| Detaches a player from an attached object.&lt;br /&gt;
|-&lt;br /&gt;
| disabledefmovement()&lt;br /&gt;
| &lt;br /&gt;
| Disables the default movement system and controls(including weapons, sword, grab. Does not include Q-menu, pause, map...).&lt;br /&gt;
|-&lt;br /&gt;
| disablemap()&lt;br /&gt;
| &lt;br /&gt;
| Disables the default map (M).&lt;br /&gt;
|-&lt;br /&gt;
| disablepause()&lt;br /&gt;
| &lt;br /&gt;
| Disables the default pause (P).&lt;br /&gt;
|-&lt;br /&gt;
| disableselectweapons()&lt;br /&gt;
| &lt;br /&gt;
| Disables the default Q-menu (Q).&lt;br /&gt;
|-&lt;br /&gt;
| disableweapons()&lt;br /&gt;
| &lt;br /&gt;
| Disables the default sword (S) and weapons (D).&lt;br /&gt;
|-&lt;br /&gt;
| echo(string)&lt;br /&gt;
| &lt;br /&gt;
| echos 'string' to the debug window(F2).&lt;br /&gt;
|-&lt;br /&gt;
| enabledefmovement()&lt;br /&gt;
| &lt;br /&gt;
| Enables the default movement system.&lt;br /&gt;
|-&lt;br /&gt;
| [[Creation/Dev/Script/Functions/enablefeatures(int)|enablefeatures(int)]]&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| enablemap()&lt;br /&gt;
| &lt;br /&gt;
| Enables the default map system(M).&lt;br /&gt;
|-&lt;br /&gt;
| enablepause()&lt;br /&gt;
| &lt;br /&gt;
| Enables the default pause system(P).&lt;br /&gt;
|-&lt;br /&gt;
| enableselectweapons()&lt;br /&gt;
| &lt;br /&gt;
| Enables the default Q-menu(Q).&lt;br /&gt;
|-&lt;br /&gt;
| enableweapons()&lt;br /&gt;
| &lt;br /&gt;
| Enables the default sword(S) and weapons(D).&lt;br /&gt;
|-&lt;br /&gt;
| escapestring(string)&lt;br /&gt;
| &lt;br /&gt;
| returns string - adds \\ in front of &amp;quot;, ' and \\, and removes non-printable characters&lt;br /&gt;
|-&lt;br /&gt;
| explodebomb(integer)&lt;br /&gt;
| &lt;br /&gt;
| explodes the bomb with the id of 'integer'.&lt;br /&gt;
|-&lt;br /&gt;
| extractfilebase(string)&lt;br /&gt;
| &lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| extractfileext(string)&lt;br /&gt;
| &lt;br /&gt;
| Takes in a file name, and returns its extension. &lt;br /&gt;
|-&lt;br /&gt;
| extractfilepath(string)&lt;br /&gt;
| &lt;br /&gt;
| returns string &lt;br /&gt;
|-&lt;br /&gt;
| fileexists(string)&lt;br /&gt;
| &lt;br /&gt;
| returns boolean of whether the file 'str' exists in the players Graal/ directory(does not search subfolders).&lt;br /&gt;
|-&lt;br /&gt;
| filesize(string)&lt;br /&gt;
| &lt;br /&gt;
| Returns the size(int) of the file 'string' in the players Graal/ directory(does not search subfolders).&lt;br /&gt;
|-&lt;br /&gt;
| fileupdate(string)&lt;br /&gt;
| &lt;br /&gt;
| returns boolean&lt;br /&gt;
|-&lt;br /&gt;
| findani(string)&lt;br /&gt;
| &lt;br /&gt;
| returns object&lt;br /&gt;
|-&lt;br /&gt;
| findfiles(string, integer)&lt;br /&gt;
| &lt;br /&gt;
| returns object&lt;br /&gt;
|-&lt;br /&gt;
| findlevel(string)&lt;br /&gt;
| &lt;br /&gt;
| returns object&lt;br /&gt;
|-&lt;br /&gt;
| findnearestplayer(float1, float2)&lt;br /&gt;
| &lt;br /&gt;
| Returns the closest player's object relevant to float1 and float2.&lt;br /&gt;
|-&lt;br /&gt;
| findnearestplayers(float, float)&lt;br /&gt;
| &lt;br /&gt;
| Returns the closest players' object relevant to float1 and float2.&lt;br /&gt;
|-&lt;br /&gt;
| findnpcbyid(integer)&lt;br /&gt;
|&lt;br /&gt;
| Returns the NPC object with the ID of 'int'.&lt;br /&gt;
|-&lt;br /&gt;
| findpathinarray(obj1, obj2, obj3, obj4, obj5, int, int, int)&lt;br /&gt;
|&lt;br /&gt;
| Returns object - Simple path-finding: Obj1 being tiles that allow walking, Obj2 being tiles that don't allow walking, Obj3; tiles that shouldn't be allowed to walked on, Obj4; tiles that are able to be walked on, Obj5; tiles where we may stop. Integers are relevant to the startx, starty and maximum path length. - Arrays for allowed/non-allowed tiles are only checked if they aren't null.&lt;br /&gt;
|-&lt;br /&gt;
| findplayer(string)&lt;br /&gt;
|&lt;br /&gt;
| Returns the player object with the account equal to string.&lt;br /&gt;
|-&lt;br /&gt;
| findplayerbycommunityname(string)&lt;br /&gt;
|&lt;br /&gt;
| Returns the player object with the community name equal to string.&lt;br /&gt;
|-&lt;br /&gt;
| findplayerbyid(integer)&lt;br /&gt;
|&lt;br /&gt;
| Returns the player object with the ID equal to integer.&lt;br /&gt;
|-&lt;br /&gt;
| findweapon(string)&lt;br /&gt;
|&lt;br /&gt;
| Returns the weapon object with the name equal to string.&lt;br /&gt;
|-&lt;br /&gt;
| format(string, string, ...)&lt;br /&gt;
|&lt;br /&gt;
| See [[Creation/Dev/Output_Methods#format.28.29_function|format()]]. &lt;br /&gt;
|- &lt;br /&gt;
| format2(string, array)&lt;br /&gt;
| &lt;br /&gt;
| Like format(), except that this expects the format string and an array of variables instead of passing the variables as separate parameters.&lt;br /&gt;
|-&lt;br /&gt;
| freefileresources(string)&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| freezeplayer(float)&lt;br /&gt;
|&lt;br /&gt;
| Freezes the player for the number of seconds specified by float.&lt;br /&gt;
|-&lt;br /&gt;
| get3dobjectat(float, float, boolean)&lt;br /&gt;
| [3D]&lt;br /&gt;
| Gets the 3d object at the specified screen position, third parameter true if it should do box collision.&lt;br /&gt;
|-&lt;br /&gt;
| get3dobjectatmouse(boolean)&lt;br /&gt;
| [3D]&lt;br /&gt;
| Gets the 3d object at the mouse.  Parameter true if it should do box collision.&lt;br /&gt;
|-&lt;br /&gt;
| get3dobjectbyray(string, string)&lt;br /&gt;
| [3D]&lt;br /&gt;
| returns object&lt;br /&gt;
|-&lt;br /&gt;
| get3dobjectsbybox(string, string)&lt;br /&gt;
| [3D]&lt;br /&gt;
| 1st parameter defines the box {minx,miny,minz, maxx,maxy,maxz}.  Second parameter specifies the type of object to find (e.g. &amp;quot;staticts,terrain,interior&amp;quot;)&lt;br /&gt;
|-&lt;br /&gt;
| get3dscreenposition(string, boolean)&lt;br /&gt;
| [3D]&lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| getanglesfromvector({x, y, z})&lt;br /&gt;
|&lt;br /&gt;
| Returns an array that contains the angles the 3D vector {x, y, z} makes with the X-Y and X-Z axes.&lt;br /&gt;
|-&lt;br /&gt;
| getascii(string)&lt;br /&gt;
|&lt;br /&gt;
| Returns the [http://www.asciitable.com/ ascii] code for string.&lt;br /&gt;
|-&lt;br /&gt;
| getbasepackage()&lt;br /&gt;
|&lt;br /&gt;
| returns object&lt;br /&gt;
|-&lt;br /&gt;
| getboxcenter(string)&lt;br /&gt;
|&lt;br /&gt;
| Returns an array containing the center of a 3D box specified by string ({x0,y0,z0,x1,y1,z1,...}).&lt;br /&gt;
|-&lt;br /&gt;
| getdesktopresolution()&lt;br /&gt;
|&lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| getdisplaydevicelist()&lt;br /&gt;
|&lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| getdownloadedupdatepackagesize()&lt;br /&gt;
|&lt;br /&gt;
| Returns the size of the downloaded update package.&lt;br /&gt;
|-&lt;br /&gt;
| getdownloadingpackage()&lt;br /&gt;
|&lt;br /&gt;
| Returns a reference to current update package being downloaded.&lt;br /&gt;
|-&lt;br /&gt;
| getdownloadingpackagescount()&lt;br /&gt;
|&lt;br /&gt;
| Returns a count of the number of update packages to download.&lt;br /&gt;
|-&lt;br /&gt;
| getdropz(string)&lt;br /&gt;
|&lt;br /&gt;
| returns float&lt;br /&gt;
|-&lt;br /&gt;
| getExtension(string)&lt;br /&gt;
|&lt;br /&gt;
| This function is the same as extractFileExt().  Takes in a file name, and returns its extension.&lt;br /&gt;
|-&lt;br /&gt;
| getfilemodtime(string)&lt;br /&gt;
|&lt;br /&gt;
| Returns a timestamp of when the file was last modified (in unix time compatible to timevar2). This function accepts both exact file path and plain file name.&lt;br /&gt;
|-&lt;br /&gt;
| gethttprequest(string, integer, string)&lt;br /&gt;
| &lt;br /&gt;
| returns object (This function is the same as requestHttp())&lt;br /&gt;
|-&lt;br /&gt;
| getimgheight(string)&lt;br /&gt;
|&lt;br /&gt;
| Returns the height (in pixels) of the filename indicated by string.&lt;br /&gt;
|-&lt;br /&gt;
| getimgpixel(string, integer, integer)&lt;br /&gt;
|&lt;br /&gt;
| returns object&lt;br /&gt;
|-&lt;br /&gt;
| getimgwidth(string)&lt;br /&gt;
|&lt;br /&gt;
| Returns the width(in pixels) of the filename indicated by string.&lt;br /&gt;
|-&lt;br /&gt;
| getkeycode(string)&lt;br /&gt;
|&lt;br /&gt;
| Returns the keycode of the key indicated by string.  The keycode returned can be used in keydown2().&lt;br /&gt;
|-&lt;br /&gt;
| getloginaccountname()&lt;br /&gt;
|&lt;br /&gt;
| Presumably used for the login server.  Use player.account instead.&lt;br /&gt;
|-&lt;br /&gt;
| getmapx(string)&lt;br /&gt;
| &lt;br /&gt;
| Gets the x coordinate location in the gmap of the level indicated by string.  The top-left level starts at (0, 0).&lt;br /&gt;
|-&lt;br /&gt;
| getmapy(string)&lt;br /&gt;
|&lt;br /&gt;
| Gets the y coordinate location in the gmap of the level indicated by string.  The top-left level starts at (0, 0).&lt;br /&gt;
|-&lt;br /&gt;
| getmusicfilename()&lt;br /&gt;
|&lt;br /&gt;
| Returns the filename of the music currently playing.&lt;br /&gt;
|-&lt;br /&gt;
| getmusicstatus()&lt;br /&gt;
|&lt;br /&gt;
| Returns the status of the music currently playing.&lt;br /&gt;
|-&lt;br /&gt;
| getmusictags()&lt;br /&gt;
|&lt;br /&gt;
| Returns the tags of the music currently playing.  This function can be used to retrieve the title and artist info of the music.&lt;br /&gt;
|-&lt;br /&gt;
| getnearestplayer(float, float)&lt;br /&gt;
|&lt;br /&gt;
| Deprecated.  Use findnearestplayer() instead.&lt;br /&gt;
|-&lt;br /&gt;
| getnearestplayers(float, float)&lt;br /&gt;
|&lt;br /&gt;
| Deprecated.  Use findnearestplayers() instead.&lt;br /&gt;
|-&lt;br /&gt;
| getpackagesdownloadcomplete()&lt;br /&gt;
|&lt;br /&gt;
| Returns 'true' if the package downloads are complete.&lt;br /&gt;
|-&lt;br /&gt;
| getpackagesdownloaded()&lt;br /&gt;
|&lt;br /&gt;
| Returns 'true' if the most recent packages are already downloaded.&lt;br /&gt;
|-&lt;br /&gt;
| getplatform()&lt;br /&gt;
|&lt;br /&gt;
| Returns the platform that the player is using.  (i.e. windows, mac, or linux)&lt;br /&gt;
|-&lt;br /&gt;
| getresolutionlist(string)&lt;br /&gt;
|&lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| getservername()&lt;br /&gt;
|&lt;br /&gt;
| Returns the name of the server the player is currently connected to.&lt;br /&gt;
|-&lt;br /&gt;
| getstringkeys(string)&lt;br /&gt;
|&lt;br /&gt;
| Returns an array of the variables that begins with the supplied string.&lt;br /&gt;
|-&lt;br /&gt;
| getterraintexture(float, float)&lt;br /&gt;
|&lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| getterraintextureindex(float, float)&lt;br /&gt;
|&lt;br /&gt;
| returns integer&lt;br /&gt;
|-&lt;br /&gt;
| gettextheight(float zoom, string style, string font)&lt;br /&gt;
|&lt;br /&gt;
| returns integer - The height in pixels of the text with the given zoom, style and font.&lt;br /&gt;
|-&lt;br /&gt;
| gettextwidth(float zoom, string style, string font, string text)&lt;br /&gt;
|&lt;br /&gt;
| returns integer - The width of the text with the given zoom, style, font and text.&lt;br /&gt;
|-&lt;br /&gt;
| gettileset()&lt;br /&gt;
|&lt;br /&gt;
| returns string - the current main tileset (pics1.png, picso.png etc.)&lt;br /&gt;
|-&lt;br /&gt;
| gettilesettype()&lt;br /&gt;
|&lt;br /&gt;
| returns integer - the current tileset type (pics1.png:0, picso.png:5 etc.)&lt;br /&gt;
|-&lt;br /&gt;
| gettotalupdatepackagesize()&lt;br /&gt;
|&lt;br /&gt;
| returns integer - The total size of the update packages.&lt;br /&gt;
|-&lt;br /&gt;
| getupdatepackage(string name)&lt;br /&gt;
|&lt;br /&gt;
| returns object - A reference to the update package with the given name.&lt;br /&gt;
|-&lt;br /&gt;
| getvectorfromangles(float, float)&lt;br /&gt;
|&lt;br /&gt;
| returns string&lt;br /&gt;
|- &lt;br /&gt;
| getz(float, float)&lt;br /&gt;
|&lt;br /&gt;
| returns float&lt;br /&gt;
|-&lt;br /&gt;
| graalcontrolhasfocus(bool)&lt;br /&gt;
|&lt;br /&gt;
| returns boolean - Whether or not the graal control has focus.  Parameter says if it should also check if the chat bar has the focus&lt;br /&gt;
|-&lt;br /&gt;
| hideplayer(float time)&lt;br /&gt;
|&lt;br /&gt;
| Hides player for the specified amount of time.&lt;br /&gt;
|-&lt;br /&gt;
| hidesword(float time)&lt;br /&gt;
|&lt;br /&gt;
| Hides the player's sword for the specified amount of time.&lt;br /&gt;
|-&lt;br /&gt;
| hitnpc(int index, float halfhearts, float fromx, float fromy)&lt;br /&gt;
|&lt;br /&gt;
| Hit's npc with specified index causing the specified amount of halfhearts in damage. It also knocks back the npc based on the from X and Y coordinate passed to it.&lt;br /&gt;
|-&lt;br /&gt;
| hitobjects(float power, float x, float y)&lt;br /&gt;
|&lt;br /&gt;
| Hurts all the npcs with the specified power on the position passed to it.&lt;br /&gt;
|-&lt;br /&gt;
| hitplayer(int index, float halfhearts, float fromx, float fromy)&lt;br /&gt;
|&lt;br /&gt;
| Hit's player with specified index causing the specified amount of halfhearts in damage. It also knocks back the player based on the from X and Y coordinate passed to it. Use 0 as the index to hit your own player.&lt;br /&gt;
|-&lt;br /&gt;
| isadminguild(str guildname)&lt;br /&gt;
| &lt;br /&gt;
| returns boolean - If the passed guildname is an admin guild or not.&lt;br /&gt;
|-&lt;br /&gt;
| isclassloaded(str classname)&lt;br /&gt;
|&lt;br /&gt;
| returns boolean - If the passed classname is loaded for the client.&lt;br /&gt;
|-&lt;br /&gt;
| iscursoron()&lt;br /&gt;
|&lt;br /&gt;
| returns boolean - If the cursor is on or not.&lt;br /&gt;
|-&lt;br /&gt;
| isdevicefullscreenonly(str device)&lt;br /&gt;
|&lt;br /&gt;
| returns boolean - If the device is full screen only or not.&lt;br /&gt;
|-&lt;br /&gt;
| isdownloading(str filename)&lt;br /&gt;
|&lt;br /&gt;
| returns boolean - If a file is currently downloaded or requested from the server.&lt;br /&gt;
|-&lt;br /&gt;
| isdownloadingfiles()&lt;br /&gt;
|&lt;br /&gt;
| returns boolean - checks if Graal is currently downloading or requesting files from the server.&lt;br /&gt;
|-&lt;br /&gt;
| isfullscreenmode()&lt;br /&gt;
|&lt;br /&gt;
| returns boolean - checks if Graal is currently in fullscreen mode.&lt;br /&gt;
|-&lt;br /&gt;
| isimgrectangletransparent(str, int, int, int, int)&lt;br /&gt;
| &lt;br /&gt;
| returns boolean&lt;br /&gt;
|-&lt;br /&gt;
| ismusicplaying()&lt;br /&gt;
| &lt;br /&gt;
| returns boolean&lt;br /&gt;
|-&lt;br /&gt;
| isobject(str)&lt;br /&gt;
| &lt;br /&gt;
| returns boolean&lt;br /&gt;
|-&lt;br /&gt;
| issoundplaying(str)&lt;br /&gt;
| &lt;br /&gt;
| returns boolean&lt;br /&gt;
|-&lt;br /&gt;
| keydown(int)&lt;br /&gt;
| &lt;br /&gt;
| returns boolean&lt;br /&gt;
|-&lt;br /&gt;
| keydown2(int, bool)&lt;br /&gt;
| &lt;br /&gt;
| returns boolean&lt;br /&gt;
|-&lt;br /&gt;
| keydown2global(int, bool)&lt;br /&gt;
| &lt;br /&gt;
| returns boolean&lt;br /&gt;
|-&lt;br /&gt;
| keydownglobal(int)&lt;br /&gt;
| &lt;br /&gt;
| returns boolean&lt;br /&gt;
|-&lt;br /&gt;
| keyname(int)&lt;br /&gt;
| &lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| lay2(str, float, float)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| lightscene()&lt;br /&gt;
| &lt;br /&gt;
| returns boolean&lt;br /&gt;
|-&lt;br /&gt;
| loadclass(str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| loadmap(str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| loadtranslation(str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| lowercase(str)&lt;br /&gt;
| &lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| ltmfs(bool)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| ltmmax(float, float)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| ltmmin(float, float)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| makescreenshot2(str, int, float, float, float, int, int)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| matrixcreate(str, str)&lt;br /&gt;
| &lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| matrixcreatefromeuler(str)&lt;br /&gt;
| &lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| matrixmulpoint(str, str)&lt;br /&gt;
| &lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| matrixmultiply(str, str)&lt;br /&gt;
| &lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| matrixmulvector(str, str)&lt;br /&gt;
| &lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| md5(str)&lt;br /&gt;
| &lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| noplayerkilling()&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| onwall(float, float)&lt;br /&gt;
| &lt;br /&gt;
| returns boolean&lt;br /&gt;
|-&lt;br /&gt;
| onwall2(float, float, float, float)&lt;br /&gt;
| &lt;br /&gt;
| returns boolean&lt;br /&gt;
|-&lt;br /&gt;
| onwater(float, float)&lt;br /&gt;
| &lt;br /&gt;
| returns boolean&lt;br /&gt;
|-&lt;br /&gt;
| onwater2(float, float, float, float)&lt;br /&gt;
| &lt;br /&gt;
| returns boolean&lt;br /&gt;
|-&lt;br /&gt;
| opengraalurl(str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| openurl(str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| openurl2(str, int, int)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| play(str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| play2(str, float, float, float)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| play3d(str, bool, str, str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| playlooped(str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| playlooped2(str, float, float, float)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| popdialog()&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| pushdialog(obj)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| putleaps(int, float, float)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| radtodeg(float)&lt;br /&gt;
| &lt;br /&gt;
| returns float&lt;br /&gt;
|-&lt;br /&gt;
| randomstring(str)&lt;br /&gt;
| &lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| removetiledefs(str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| replaceani(str, str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| requestfiledeletion(str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| requestfilerename(str, str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| requestfilesmove(str, str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| requesthttp(str, int, str)&lt;br /&gt;
| &lt;br /&gt;
| returns object&lt;br /&gt;
|-&lt;br /&gt;
| requesttext(str, str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| requesturl(str)&lt;br /&gt;
| &lt;br /&gt;
| returns object&lt;br /&gt;
|-&lt;br /&gt;
| resetfocus()&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| rotationadd(str, str)&lt;br /&gt;
| &lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| rotationaddeuler(str, str)&lt;br /&gt;
| &lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| rotationfromeuler(str)&lt;br /&gt;
| &lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| rotationsub(str, str)&lt;br /&gt;
| &lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| rotationtoeuler(str)&lt;br /&gt;
| &lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| rungarbagecollector()&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| savelog(str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| say(int)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| say2(str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| screenx(float, float)&lt;br /&gt;
| &lt;br /&gt;
| returns integer&lt;br /&gt;
|-&lt;br /&gt;
| screeny(float, float)&lt;br /&gt;
| &lt;br /&gt;
| returns integer&lt;br /&gt;
|-&lt;br /&gt;
| selectfilefordownload(str)&lt;br /&gt;
| &lt;br /&gt;
| opens the select&lt;br /&gt;
|-&lt;br /&gt;
| selectfileforupload()&lt;br /&gt;
| &lt;br /&gt;
| opens the select&lt;br /&gt;
|-&lt;br /&gt;
| sendrpgmessage(str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| sendtext(str, str, params...)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| sendtorc(str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| serverwarp(str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| setani(str, str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| setbeltcolor(str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| setcoatcolor(str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| setcontentcontrol(obj)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| setcursor2(str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| seteffect(float, float, float, float)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| setfocus(float, float)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| setfogcolors(obj)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| setgender(str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| sethead(str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| setinteriorrendermode(int)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| setletters(str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| setmap(str, str, float, float)&lt;br /&gt;
| &lt;br /&gt;
| sets a text map (you can see the tiles of other levels but not the npcs), parameters are text file with level names, the map image (not used anymore), default x and y for the head icons; use gmaps if possible instead of this&lt;br /&gt;
|-&lt;br /&gt;
| setminimap(str, str, float, float)&lt;br /&gt;
| &lt;br /&gt;
| parameters are a text file with level names, the image, default x and y; use gmaps if possible instead of this&lt;br /&gt;
|-&lt;br /&gt;
| setmusicvolume(float, float)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| setplayerdir(str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| setshield(str, int)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| setshoecolor(str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| setshootparams(str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| setskincolor(str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| setskybandcolors(obj)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| setskybandsizes(obj)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| setsleevecolor(str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| setspritesimage(str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| setstatusimage(str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| setsuncolors(obj)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| setsword(str, int)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| setterrainrendermode(int)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| showstats(int)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| spyfire(int, int)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| startrecordvideo()&lt;br /&gt;
| &lt;br /&gt;
| returns boolean&lt;br /&gt;
|-&lt;br /&gt;
| stopmidi()&lt;br /&gt;
| &lt;br /&gt;
| same as stopmusic(), kept for compatibility&lt;br /&gt;
|-&lt;br /&gt;
| stopmusic()&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| stoprecordvideo()&lt;br /&gt;
| &lt;br /&gt;
| returns boolean&lt;br /&gt;
|-&lt;br /&gt;
| stopsound(str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| strcmp(str, str)&lt;br /&gt;
| &lt;br /&gt;
| returns integer&lt;br /&gt;
|-&lt;br /&gt;
| strequals(str, str)&lt;br /&gt;
| &lt;br /&gt;
| returns boolean&lt;br /&gt;
|-&lt;br /&gt;
| switchtoopengl()&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| synctimeofday(float, float)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| takeplayercarry()&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| takeplayerhorse()&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| testplayer(float, float)&lt;br /&gt;
| &lt;br /&gt;
| returns integer&lt;br /&gt;
|-&lt;br /&gt;
| trace(str)&lt;br /&gt;
| &lt;br /&gt;
| same as echo()&lt;br /&gt;
|-&lt;br /&gt;
| triggeraction(float, float, str, params...)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| triggerserver(str, str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| update3dterrain(float, float, float, float)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| updateboard(int, int, int, int)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| updateterrain()&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| updatevisibledistance()&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| uploadfile(str)&lt;br /&gt;
| &lt;br /&gt;
| uploads a file, you must provide the full path provided by a onDropFiles() event, also this will only work if the scripted RC has currently a file browser window open; once the file is uploaded an onFilesUploaded event will be invoked&lt;br /&gt;
|-&lt;br /&gt;
| uppercase(str)&lt;br /&gt;
| &lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| vectoradd(str, str)&lt;br /&gt;
| &lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| vectorcross(str, str)&lt;br /&gt;
| &lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| vectordist(str, str)&lt;br /&gt;
| &lt;br /&gt;
| returns float&lt;br /&gt;
|-&lt;br /&gt;
| vectordot(str, str)&lt;br /&gt;
| &lt;br /&gt;
| returns float&lt;br /&gt;
|-&lt;br /&gt;
| vectorlen(str)&lt;br /&gt;
| &lt;br /&gt;
| returns float&lt;br /&gt;
|-&lt;br /&gt;
| vectornormalize(str)&lt;br /&gt;
| &lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| vectororthobasis(str)&lt;br /&gt;
| &lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| vectorscale(str, float)&lt;br /&gt;
| &lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| vectorsub(str, str)&lt;br /&gt;
| &lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| worldx(float, float)&lt;br /&gt;
| &lt;br /&gt;
| returns float&lt;br /&gt;
|-&lt;br /&gt;
| worldy(float, float)&lt;br /&gt;
| &lt;br /&gt;
| returns float&lt;br /&gt;
|-&lt;br /&gt;
| wraptext(int, str, str)&lt;br /&gt;
| &lt;br /&gt;
| returns object&lt;br /&gt;
|-&lt;br /&gt;
| wraptext2(int, float, str, str)&lt;br /&gt;
| &lt;br /&gt;
| returns object&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Objects=&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
{{:Creation/Dev/Script/Client}}&lt;br /&gt;
&lt;br /&gt;
=GUI Objects=&lt;br /&gt;
GUI Objects are currently well documented starting here [[Creation/Dev/Script/Client/GuiControl]].&lt;br /&gt;
&lt;br /&gt;
=Preference Variables=&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;2&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
| '''Variable'''&lt;br /&gt;
|width=&amp;quot;100px&amp;quot;|'''Type'''&lt;br /&gt;
| '''Notes'''&lt;br /&gt;
|-&lt;br /&gt;
| $pref::audio::choosenvoicecodec&lt;br /&gt;
| &lt;br /&gt;
| integer&lt;br /&gt;
|-&lt;br /&gt;
| $pref::audio::microactivatebyvolume&lt;br /&gt;
| &lt;br /&gt;
| boolean&lt;br /&gt;
|-&lt;br /&gt;
| $pref::audio::microactivationlevel&lt;br /&gt;
| &lt;br /&gt;
| integer&lt;br /&gt;
|-&lt;br /&gt;
| $pref::audio::microinputdevice&lt;br /&gt;
| &lt;br /&gt;
| integer&lt;br /&gt;
|-&lt;br /&gt;
| $pref::audio::microon&lt;br /&gt;
| &lt;br /&gt;
| boolean&lt;br /&gt;
|-&lt;br /&gt;
| $pref::audio::microvolumefactor&lt;br /&gt;
| &lt;br /&gt;
| integer&lt;br /&gt;
|-&lt;br /&gt;
| $pref::audio::midivolume&lt;br /&gt;
| &lt;br /&gt;
| integer&lt;br /&gt;
|-&lt;br /&gt;
| $pref::audio::mp3volume&lt;br /&gt;
| &lt;br /&gt;
| integer&lt;br /&gt;
|-&lt;br /&gt;
| $pref::audio::radiovolume&lt;br /&gt;
| &lt;br /&gt;
| integer&lt;br /&gt;
|-&lt;br /&gt;
| $pref::audio::reversestereo&lt;br /&gt;
| &lt;br /&gt;
| boolean&lt;br /&gt;
|-&lt;br /&gt;
| $pref::audio::sfxvolume&lt;br /&gt;
| &lt;br /&gt;
| integer&lt;br /&gt;
|-&lt;br /&gt;
| $pref::audio::voicevolume&lt;br /&gt;
| &lt;br /&gt;
| integer&lt;br /&gt;
|-&lt;br /&gt;
| $pref::capture::allowbyscript&lt;br /&gt;
| &lt;br /&gt;
| boolean [R]&lt;br /&gt;
|-&lt;br /&gt;
| $pref::capture::area&lt;br /&gt;
| &lt;br /&gt;
| string&lt;br /&gt;
|-&lt;br /&gt;
| $pref::capture::audiobitrate&lt;br /&gt;
| &lt;br /&gt;
| integer&lt;br /&gt;
|-&lt;br /&gt;
| $pref::capture::disabledaynight&lt;br /&gt;
| &lt;br /&gt;
| boolean&lt;br /&gt;
|-&lt;br /&gt;
| $pref::capture::format&lt;br /&gt;
| &lt;br /&gt;
| string&lt;br /&gt;
|-&lt;br /&gt;
| $pref::capture::fps&lt;br /&gt;
| &lt;br /&gt;
| integer&lt;br /&gt;
|-&lt;br /&gt;
| $pref::capture::hideinterface&lt;br /&gt;
| &lt;br /&gt;
| boolean&lt;br /&gt;
|-&lt;br /&gt;
| $pref::capture::recordaudio&lt;br /&gt;
| &lt;br /&gt;
| boolean&lt;br /&gt;
|-&lt;br /&gt;
| $pref::capture::showmouse&lt;br /&gt;
| &lt;br /&gt;
| boolean&lt;br /&gt;
|-&lt;br /&gt;
| $pref::capture::size&lt;br /&gt;
| &lt;br /&gt;
| string&lt;br /&gt;
|-&lt;br /&gt;
| $pref::capture::videobitrate&lt;br /&gt;
| &lt;br /&gt;
| integer&lt;br /&gt;
|-&lt;br /&gt;
| $pref::graal::allowglobalpms&lt;br /&gt;
| &lt;br /&gt;
| boolean&lt;br /&gt;
|-&lt;br /&gt;
| $pref::graal::automapping&lt;br /&gt;
| &lt;br /&gt;
| boolean&lt;br /&gt;
|-&lt;br /&gt;
| $pref::graal::defaultfontname&lt;br /&gt;
| &lt;br /&gt;
| string&lt;br /&gt;
|-&lt;br /&gt;
| $pref::graal::defaultfontsize&lt;br /&gt;
| &lt;br /&gt;
| integer&lt;br /&gt;
|-&lt;br /&gt;
| $pref::graal::dontconnectlevels&lt;br /&gt;
| &lt;br /&gt;
| boolean&lt;br /&gt;
|-&lt;br /&gt;
| $pref::graal::dontloadlistheads&lt;br /&gt;
| &lt;br /&gt;
| boolean&lt;br /&gt;
|-&lt;br /&gt;
| $pref::graal::dontsavepasswords&lt;br /&gt;
| &lt;br /&gt;
| boolean&lt;br /&gt;
|-&lt;br /&gt;
| $pref::graal::dontsavepms&lt;br /&gt;
| &lt;br /&gt;
| boolean&lt;br /&gt;
|-&lt;br /&gt;
| $pref::graal::fixedport&lt;br /&gt;
| &lt;br /&gt;
| boolean&lt;br /&gt;
|-&lt;br /&gt;
| $pref::graal::fixedudpport&lt;br /&gt;
| &lt;br /&gt;
| integer&lt;br /&gt;
|-&lt;br /&gt;
| $pref::graal::language&lt;br /&gt;
| &lt;br /&gt;
| string&lt;br /&gt;
|-&lt;br /&gt;
| $pref::graal::limitnicknames&lt;br /&gt;
| &lt;br /&gt;
| boolean&lt;br /&gt;
|-&lt;br /&gt;
| $pref::graal::loadbuddylistfromserver&lt;br /&gt;
| &lt;br /&gt;
| boolean&lt;br /&gt;
|-&lt;br /&gt;
| $pref::graal::nicknamelimit&lt;br /&gt;
| &lt;br /&gt;
| integer&lt;br /&gt;
|-&lt;br /&gt;
| $pref::graal::nomassmessages&lt;br /&gt;
| &lt;br /&gt;
| boolean&lt;br /&gt;
|-&lt;br /&gt;
| $pref::graal::notoalls&lt;br /&gt;
| &lt;br /&gt;
| boolean&lt;br /&gt;
|-&lt;br /&gt;
| $pref::graal::noudp&lt;br /&gt;
| &lt;br /&gt;
| boolean&lt;br /&gt;
|-&lt;br /&gt;
| $pref::graal::showyourselfonbuddylists&lt;br /&gt;
| &lt;br /&gt;
| boolean&lt;br /&gt;
|-&lt;br /&gt;
| $pref::input::mousesensitivity&lt;br /&gt;
| &lt;br /&gt;
| float&lt;br /&gt;
|-&lt;br /&gt;
| $pref::interior::lockarrays&lt;br /&gt;
| &lt;br /&gt;
| boolean&lt;br /&gt;
|-&lt;br /&gt;
| $pref::video::defaultguistyle&lt;br /&gt;
| &lt;br /&gt;
| string&lt;br /&gt;
|-&lt;br /&gt;
| $pref::video::detailfactor&lt;br /&gt;
| &lt;br /&gt;
| float&lt;br /&gt;
|-&lt;br /&gt;
| $pref::video::fogdistance&lt;br /&gt;
| &lt;br /&gt;
| float&lt;br /&gt;
|-&lt;br /&gt;
| $pref::video::fullscreenmode&lt;br /&gt;
| &lt;br /&gt;
| string&lt;br /&gt;
|-&lt;br /&gt;
| $pref::video::resolution&lt;br /&gt;
| &lt;br /&gt;
| integer&lt;br /&gt;
|-&lt;br /&gt;
| $pref::video::screenshotformat&lt;br /&gt;
| &lt;br /&gt;
| string&lt;br /&gt;
|-&lt;br /&gt;
| $pref::video::visibledistance&lt;br /&gt;
| &lt;br /&gt;
| float&lt;br /&gt;
|-&lt;br /&gt;
| $pref::video::windowmode&lt;br /&gt;
| &lt;br /&gt;
| string&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Fowlplay4</name></author>
	</entry>
	<entry>
		<id>https://graalonline.net/index.php?title=Creation/Dev/Script/Clientside_Functions&amp;diff=18128</id>
		<title>Creation/Dev/Script/Clientside Functions</title>
		<link rel="alternate" type="text/html" href="https://graalonline.net/index.php?title=Creation/Dev/Script/Clientside_Functions&amp;diff=18128"/>
		<updated>2011-04-09T19:43:19Z</updated>

		<summary type="html">&lt;p&gt;Fowlplay4: /* Objects */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Scripting Reference]]&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;2&amp;quot; width=&amp;quot;50%&amp;quot;&lt;br /&gt;
|[R]&lt;br /&gt;
| denotes it is read-only.&lt;br /&gt;
|-&lt;br /&gt;
|[3D]&lt;br /&gt;
| denotes it is a Graal3D function.&lt;br /&gt;
|-&lt;br /&gt;
|[opengl]&lt;br /&gt;
| denotes it is functional only in opengl mode.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Variables==&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;2&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
| '''Variable'''&lt;br /&gt;
|width=&amp;quot;100px&amp;quot;|'''Type'''&lt;br /&gt;
| '''Notes'''&lt;br /&gt;
|-&lt;br /&gt;
| allfeatures&lt;br /&gt;
| ''integer [R]''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| allplayerscount&lt;br /&gt;
| ''integer [R]''&lt;br /&gt;
| Returns the count of all players on your playerlist, including IRC bots.&lt;br /&gt;
|-&lt;br /&gt;
| allrenderobjecttypes&lt;br /&gt;
| ''integer [R]''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| allstats &lt;br /&gt;
| ''integer [R]''&lt;br /&gt;
| Used with showstats() in order to show all stats.&lt;br /&gt;
|-&lt;br /&gt;
| canspin&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| Returns true of false if the player has spin attack.&lt;br /&gt;
|-&lt;br /&gt;
| carriesblackstone&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| Returns whether the player is carrying a black stone.&lt;br /&gt;
|-&lt;br /&gt;
| carriesbush&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| Returns whether the player is carrying a bush.&lt;br /&gt;
|-&lt;br /&gt;
| carriesnpc&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| Returns whether the player is carrying an NPC&lt;br /&gt;
|-&lt;br /&gt;
| carriessign&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| Returns whether the player is carrying a sign.&lt;br /&gt;
|-&lt;br /&gt;
| carriesstone&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| Returns whether the player is carrying a stone.&lt;br /&gt;
|-&lt;br /&gt;
| carriesvase&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| Returns whether the player is carrying a vase.&lt;br /&gt;
|-&lt;br /&gt;
| downloadfile&lt;br /&gt;
| ''string [R]''&lt;br /&gt;
| Returns the currently downloaded file.&lt;br /&gt;
|-&lt;br /&gt;
| downloadpos&lt;br /&gt;
| ''integer [R]''&lt;br /&gt;
| Returns the position of the currently downloaded file.&lt;br /&gt;
|-&lt;br /&gt;
| downloadsize&lt;br /&gt;
| ''integer [R]''&lt;br /&gt;
| Returns the size of the currently downloaded file.&lt;br /&gt;
|-&lt;br /&gt;
| editingmission&lt;br /&gt;
| ''boolean''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| emoticonchar&lt;br /&gt;
| ''string [R]''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| focusx&lt;br /&gt;
| ''float [R]''&lt;br /&gt;
| Position of the camera in tile units.&lt;br /&gt;
|-&lt;br /&gt;
| focusy&lt;br /&gt;
| ''float [R]''&lt;br /&gt;
| Position of the camera in tile units.&lt;br /&gt;
|-&lt;br /&gt;
| ghostsnear&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| If a ghost(observer) is in the same level as the player.&lt;br /&gt;
|-&lt;br /&gt;
| graalplugincookie&lt;br /&gt;
| ''string [R]''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| graalversion&lt;br /&gt;
| ''float [R]''&lt;br /&gt;
| Version of Graal the player is using.&lt;br /&gt;
|-&lt;br /&gt;
| gravity&lt;br /&gt;
| ''float''&lt;br /&gt;
| The gravity value that effects how fast projectiles fall. It universally effects all projectiles.&lt;br /&gt;
|-&lt;br /&gt;
| installedlanguages&lt;br /&gt;
| ''string [R]''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| isapplicationactive&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| Is Graal window active?&lt;br /&gt;
|-&lt;br /&gt;
| iscarrying&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| Returns true of false if the player is carrying something.&lt;br /&gt;
|-&lt;br /&gt;
| isfocused&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| isgraal3d&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| isgraalplugin&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| isleader&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| Player was the first to enter the level.&lt;br /&gt;
|-&lt;br /&gt;
| isonmap&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| Player is on a map.&lt;br /&gt;
|-&lt;br /&gt;
| isopengl&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| Graal is in opengl mode.&lt;br /&gt;
|-&lt;br /&gt;
| isrecordingvideo&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| Player is currently recording(alt+6) Graal.&lt;br /&gt;
|-&lt;br /&gt;
| jpegquality&lt;br /&gt;
| ''integer''&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| isgraalplugin&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| lastdownloadfile&lt;br /&gt;
| ''string [R]''&lt;br /&gt;
| The last file downloaded.&lt;br /&gt;
|-&lt;br /&gt;
| leftmousebutton&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| If the left mouse button is pressed.&lt;br /&gt;
|-&lt;br /&gt;
| leftmousebuttonglobal&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| If the left mouse button is pressed. Returns whether mouse is in focus of GUIs or not.&lt;br /&gt;
|-&lt;br /&gt;
| levelorgx&lt;br /&gt;
| ''float [R]''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| levelorgy&lt;br /&gt;
| ''float [R]''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| lighteffectsenabled&lt;br /&gt;
| ''boolean''&lt;br /&gt;
| Whether the player has their lights enabled via options.&lt;br /&gt;
|-&lt;br /&gt;
| middlemousebutton&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| If the middle mouse button is pressed&lt;br /&gt;
|-&lt;br /&gt;
| middlemousebuttonglobal&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| If the middle mouse button is pressed. Returns whether mouse is in focus of GUIs or not.&lt;br /&gt;
|-&lt;br /&gt;
| mousebuttons &lt;br /&gt;
| ''integer [R]''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| mousebuttonsglobal&lt;br /&gt;
| ''integer [R]''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| mousepitch&lt;br /&gt;
| ''float [R] [3D]''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| mousescreenx &lt;br /&gt;
| ''integer''&lt;br /&gt;
| Position of the mouse in the Graal screen, in pixel units on the x-axis.&lt;br /&gt;
|-&lt;br /&gt;
| mousescreeny &lt;br /&gt;
| ''integer''&lt;br /&gt;
| Position of the mouse in the Graal screen, in pixel units on the y-axis.&lt;br /&gt;
|-&lt;br /&gt;
| mousewheeldelta&lt;br /&gt;
| ''integer [R]''&lt;br /&gt;
| How much the mouse wheel has been scrolled.&lt;br /&gt;
|-&lt;br /&gt;
| mousex&lt;br /&gt;
| ''float''&lt;br /&gt;
| Position of the mouse in the level, in tile units, on the x-axis.&lt;br /&gt;
|-&lt;br /&gt;
| mousey&lt;br /&gt;
| ''float''&lt;br /&gt;
| Position of the mouse in the level, in tile units, on the y-axis&lt;br /&gt;
|-&lt;br /&gt;
| mouseyaw&lt;br /&gt;
| ''float [R] [3D]''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| musiclen &lt;br /&gt;
| ''integer [R]''&lt;br /&gt;
| Length of current playing '''MP3'''&lt;br /&gt;
|-&lt;br /&gt;
| musicpos&lt;br /&gt;
| ''integer [R]''&lt;br /&gt;
| Position of current playing '''MP3'''&lt;br /&gt;
|-&lt;br /&gt;
| particleeffectsenabled&lt;br /&gt;
| ''boolean''&lt;br /&gt;
| If player has particles enabled in their options.&lt;br /&gt;
|-&lt;br /&gt;
| rightmousebutton &lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| If the right mouse button is pressed&lt;br /&gt;
|-&lt;br /&gt;
| rightmousebuttonglobal &lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| If the right mouse button is pressed. Returns whether mouse is in focus of GUIs or not.&lt;br /&gt;
|-&lt;br /&gt;
| screenheight&lt;br /&gt;
| ''integer [R]''&lt;br /&gt;
| Height of the Graal screen in pixel units.&lt;br /&gt;
|-&lt;br /&gt;
| screenwidth&lt;br /&gt;
| ''integer [R]''&lt;br /&gt;
| Width of the Graal screen in pixel units.&lt;br /&gt;
|-&lt;br /&gt;
| scriptedcontrols &lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| scriptedplayerlist&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| Whether the player has the scripted playerlist enabled.&lt;br /&gt;
|-&lt;br /&gt;
| scriptlogwritetoreadonly&lt;br /&gt;
| ''boolean''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| selectedlistplayers&lt;br /&gt;
| ''object''&lt;br /&gt;
| An object of all players selected on the playerlist.&lt;br /&gt;
|-&lt;br /&gt;
| selectedsword &lt;br /&gt;
| ''integer''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| selectedweapon &lt;br /&gt;
| ''integer''&lt;br /&gt;
| Index of the currently selected weapon.&lt;br /&gt;
|-&lt;br /&gt;
| servername&lt;br /&gt;
| ''string [R]''&lt;br /&gt;
| Name of the server.&lt;br /&gt;
|-&lt;br /&gt;
| serverstartconnect &lt;br /&gt;
| ''string''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| serverstartparams &lt;br /&gt;
| ''string''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| shotbybaddy&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| If the player is shot by a baddy(default) arrow.&lt;br /&gt;
|-&lt;br /&gt;
| shotbyplayer&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| If the player is shot by another players arrow.&lt;br /&gt;
|-&lt;br /&gt;
| showterraingrid&lt;br /&gt;
| ''boolean''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| spritesimage&lt;br /&gt;
| ''string''&lt;br /&gt;
| Filename of the currently set sprite image.&lt;br /&gt;
|-&lt;br /&gt;
| statusimage&lt;br /&gt;
| ''string''&lt;br /&gt;
| Filename of the currently set state image.&lt;br /&gt;
|-&lt;br /&gt;
| timevar&lt;br /&gt;
| ''integer [R].''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| timevar2&lt;br /&gt;
| ''float [R]''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| timevar3&lt;br /&gt;
| ''float [R] [3D]''&lt;br /&gt;
| Synchronized time which works on both server and client-side, precision is milliseconds.&lt;br /&gt;
|-&lt;br /&gt;
| wasshooted&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| If the player is shot by a default arrow.&lt;br /&gt;
|-&lt;br /&gt;
| waterheight&lt;br /&gt;
| ''float''&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| weapons&lt;br /&gt;
| ''object [R]''&lt;br /&gt;
| all the players weapons, this includes login inherited weapons.&lt;br /&gt;
|-&lt;br /&gt;
| weaponsenabled&lt;br /&gt;
| ''boolean''&lt;br /&gt;
| If the players weapons are enabled via disableweapons()/enableweapons().&lt;br /&gt;
|-&lt;br /&gt;
| weathereffectsenabled&lt;br /&gt;
| ''boolean''&lt;br /&gt;
| If weather is enabled in the players options.&lt;br /&gt;
|-&lt;br /&gt;
| worldclockstopped&lt;br /&gt;
| ''boolean''&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| worldhour &lt;br /&gt;
| ''integer''&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| worldminute &lt;br /&gt;
| ''float''&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| worldminutesofday &lt;br /&gt;
| ''float''&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| worldrealsecondsperday &lt;br /&gt;
| ''float''&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Functions=&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;2&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
| '''Function'''&lt;br /&gt;
|width=&amp;quot;100px&amp;quot;|'''Type'''&lt;br /&gt;
| '''Notes'''&lt;br /&gt;
|-&lt;br /&gt;
| addcontrol(object)&lt;br /&gt;
|&lt;br /&gt;
| adds 'object' to the parent control.&lt;br /&gt;
|-&lt;br /&gt;
| addmaterialmapping(string, string)&lt;br /&gt;
| [3D]&lt;br /&gt;
| returns boolean.&lt;br /&gt;
|-&lt;br /&gt;
| addtiledef(string image, string prefix, int format)&lt;br /&gt;
| &lt;br /&gt;
| Adds a tileset definition with the supplied tileset image, level prefix and tileset format (0=pics1, 1=new world, 5=terrain).&lt;br /&gt;
|-&lt;br /&gt;
| addtiledef2(string image, string prefix, int x, int y)&lt;br /&gt;
| &lt;br /&gt;
| Overlays an image on the tileset with the supplied tileset image and level prefix. Parameters 'x' and 'y' represent the x and y position on the tileset of where to place the new image.&lt;br /&gt;
|-&lt;br /&gt;
| aindexof(float, array)&lt;br /&gt;
| &lt;br /&gt;
| Returns integer - the position of 'float' in the array.&lt;br /&gt;
|-&lt;br /&gt;
| arccos(float)&lt;br /&gt;
| &lt;br /&gt;
| Returns float - the arc cosine of 'float'.&lt;br /&gt;
|-&lt;br /&gt;
| arcsin(float)&lt;br /&gt;
| &lt;br /&gt;
| Returns float - the arc sine of 'float'.&lt;br /&gt;
|-&lt;br /&gt;
| attachplayertoobj(integer1, integer2)&lt;br /&gt;
| &lt;br /&gt;
| Attaches the player to the object with the matching ID where integer1 is the object type (currently only NPCs - 0) and integer2 is the ID of the desired object.&lt;br /&gt;
|-&lt;br /&gt;
| base64decode(string)&lt;br /&gt;
| &lt;br /&gt;
| Returns string - Decodes a base64 string.&lt;br /&gt;
|-&lt;br /&gt;
| base64encode(string)&lt;br /&gt;
| &lt;br /&gt;
| Returns string - Encodes string in to several characters of a 64 printable character set (A-Z, a-z, 0-9, + and /, while &amp;quot;=&amp;quot; is a special suffix code)&lt;br /&gt;
|-&lt;br /&gt;
| boxcontains(string, string)&lt;br /&gt;
| &lt;br /&gt;
| returns boolean.&lt;br /&gt;
|-&lt;br /&gt;
| boxcontainsvector(string, string)&lt;br /&gt;
| &lt;br /&gt;
| returns boolean&lt;br /&gt;
|-&lt;br /&gt;
| boxintersect(string, string)&lt;br /&gt;
| &lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| boxoverlaps(string, string)&lt;br /&gt;
| &lt;br /&gt;
| returns boolean&lt;br /&gt;
|-&lt;br /&gt;
| boxscale(string, string)&lt;br /&gt;
| &lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| callnpc(int index, string function)&lt;br /&gt;
| &lt;br /&gt;
| Calls a function from an NPC where 'index' is the NPC's index and 'function' is the function name.&lt;br /&gt;
|-&lt;br /&gt;
| callweapon(int index, string function)&lt;br /&gt;
| &lt;br /&gt;
| Calls a function from a weapon where 'index' is the weapon's index and 'function' is the function name.&lt;br /&gt;
|-&lt;br /&gt;
| castray({x,y,x}, {x,y,z}, string type)&lt;br /&gt;
| [3D]&lt;br /&gt;
| returns object - specify the start and end of the ray, and the object types (e.g. &amp;quot;staticts,terrain,interior&amp;quot;)&lt;br /&gt;
|-&lt;br /&gt;
| checksum(string)&lt;br /&gt;
| &lt;br /&gt;
| returns float&lt;br /&gt;
|-&lt;br /&gt;
| contains(string2, string1)&lt;br /&gt;
| &lt;br /&gt;
| returns boolean - True if string1 is contained within string2.&lt;br /&gt;
|-&lt;br /&gt;
| copystrings(string, string)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| cursoroff()&lt;br /&gt;
| [opengl]&lt;br /&gt;
| Disables the visible mouse cursor.&lt;br /&gt;
|-&lt;br /&gt;
| cursoron()&lt;br /&gt;
| [opengl]&lt;br /&gt;
| Enables the visible mouse cursor.&lt;br /&gt;
|-&lt;br /&gt;
| degtorad(float)&lt;br /&gt;
| &lt;br /&gt;
| returns float - Converts angle measurements of degrees to radians&lt;br /&gt;
|-&lt;br /&gt;
| detachplayer()&lt;br /&gt;
| &lt;br /&gt;
| Detaches a player from an attached object.&lt;br /&gt;
|-&lt;br /&gt;
| disabledefmovement()&lt;br /&gt;
| &lt;br /&gt;
| Disables the default movement system and controls(including weapons, sword, grab. Does not include Q-menu, pause, map...).&lt;br /&gt;
|-&lt;br /&gt;
| disablemap()&lt;br /&gt;
| &lt;br /&gt;
| Disables the default map (M).&lt;br /&gt;
|-&lt;br /&gt;
| disablepause()&lt;br /&gt;
| &lt;br /&gt;
| Disables the default pause (P).&lt;br /&gt;
|-&lt;br /&gt;
| disableselectweapons()&lt;br /&gt;
| &lt;br /&gt;
| Disables the default Q-menu (Q).&lt;br /&gt;
|-&lt;br /&gt;
| disableweapons()&lt;br /&gt;
| &lt;br /&gt;
| Disables the default sword (S) and weapons (D).&lt;br /&gt;
|-&lt;br /&gt;
| echo(string)&lt;br /&gt;
| &lt;br /&gt;
| echos 'string' to the debug window(F2).&lt;br /&gt;
|-&lt;br /&gt;
| enabledefmovement()&lt;br /&gt;
| &lt;br /&gt;
| Enables the default movement system.&lt;br /&gt;
|-&lt;br /&gt;
| [[Creation/Dev/Script/Functions/enablefeatures(int)|enablefeatures(int)]]&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| enablemap()&lt;br /&gt;
| &lt;br /&gt;
| Enables the default map system(M).&lt;br /&gt;
|-&lt;br /&gt;
| enablepause()&lt;br /&gt;
| &lt;br /&gt;
| Enables the default pause system(P).&lt;br /&gt;
|-&lt;br /&gt;
| enableselectweapons()&lt;br /&gt;
| &lt;br /&gt;
| Enables the default Q-menu(Q).&lt;br /&gt;
|-&lt;br /&gt;
| enableweapons()&lt;br /&gt;
| &lt;br /&gt;
| Enables the default sword(S) and weapons(D).&lt;br /&gt;
|-&lt;br /&gt;
| escapestring(string)&lt;br /&gt;
| &lt;br /&gt;
| returns string - adds \\ in front of &amp;quot;, ' and \\, and removes non-printable characters&lt;br /&gt;
|-&lt;br /&gt;
| explodebomb(integer)&lt;br /&gt;
| &lt;br /&gt;
| explodes the bomb with the id of 'integer'.&lt;br /&gt;
|-&lt;br /&gt;
| extractfilebase(string)&lt;br /&gt;
| &lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| extractfileext(string)&lt;br /&gt;
| &lt;br /&gt;
| Takes in a file name, and returns its extension. &lt;br /&gt;
|-&lt;br /&gt;
| extractfilepath(string)&lt;br /&gt;
| &lt;br /&gt;
| returns string &lt;br /&gt;
|-&lt;br /&gt;
| fileexists(string)&lt;br /&gt;
| &lt;br /&gt;
| returns boolean of whether the file 'str' exists in the players Graal/ directory(does not search subfolders).&lt;br /&gt;
|-&lt;br /&gt;
| filesize(string)&lt;br /&gt;
| &lt;br /&gt;
| Returns the size(int) of the file 'string' in the players Graal/ directory(does not search subfolders).&lt;br /&gt;
|-&lt;br /&gt;
| fileupdate(string)&lt;br /&gt;
| &lt;br /&gt;
| returns boolean&lt;br /&gt;
|-&lt;br /&gt;
| findani(string)&lt;br /&gt;
| &lt;br /&gt;
| returns object&lt;br /&gt;
|-&lt;br /&gt;
| findfiles(string, integer)&lt;br /&gt;
| &lt;br /&gt;
| returns object&lt;br /&gt;
|-&lt;br /&gt;
| findlevel(string)&lt;br /&gt;
| &lt;br /&gt;
| returns object&lt;br /&gt;
|-&lt;br /&gt;
| findnearestplayer(float1, float2)&lt;br /&gt;
| &lt;br /&gt;
| Returns the closest player's object relevant to float1 and float2.&lt;br /&gt;
|-&lt;br /&gt;
| findnearestplayers(float, float)&lt;br /&gt;
| &lt;br /&gt;
| Returns the closest players' object relevant to float1 and float2.&lt;br /&gt;
|-&lt;br /&gt;
| findnpcbyid(integer)&lt;br /&gt;
|&lt;br /&gt;
| Returns the NPC object with the ID of 'int'.&lt;br /&gt;
|-&lt;br /&gt;
| findpathinarray(obj1, obj2, obj3, obj4, obj5, int, int, int)&lt;br /&gt;
|&lt;br /&gt;
| Returns object - Simple path-finding: Obj1 being tiles that allow walking, Obj2 being tiles that don't allow walking, Obj3; tiles that shouldn't be allowed to walked on, Obj4; tiles that are able to be walked on, Obj5; tiles where we may stop. Integers are relevant to the startx, starty and maximum path length. - Arrays for allowed/non-allowed tiles are only checked if they aren't null.&lt;br /&gt;
|-&lt;br /&gt;
| findplayer(string)&lt;br /&gt;
|&lt;br /&gt;
| Returns the player object with the account equal to string.&lt;br /&gt;
|-&lt;br /&gt;
| findplayerbycommunityname(string)&lt;br /&gt;
|&lt;br /&gt;
| Returns the player object with the community name equal to string.&lt;br /&gt;
|-&lt;br /&gt;
| findplayerbyid(integer)&lt;br /&gt;
|&lt;br /&gt;
| Returns the player object with the ID equal to integer.&lt;br /&gt;
|-&lt;br /&gt;
| findweapon(string)&lt;br /&gt;
|&lt;br /&gt;
| Returns the weapon object with the name equal to string.&lt;br /&gt;
|-&lt;br /&gt;
| format(string, string, ...)&lt;br /&gt;
|&lt;br /&gt;
| See [[Creation/Dev/Output_Methods#format.28.29_function|format()]]. &lt;br /&gt;
|- &lt;br /&gt;
| format2(string, array)&lt;br /&gt;
| &lt;br /&gt;
| Like format(), except that this expects the format string and an array of variables instead of passing the variables as separate parameters.&lt;br /&gt;
|-&lt;br /&gt;
| freefileresources(string)&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| freezeplayer(float)&lt;br /&gt;
|&lt;br /&gt;
| Freezes the player for the number of seconds specified by float.&lt;br /&gt;
|-&lt;br /&gt;
| get3dobjectat(float, float, boolean)&lt;br /&gt;
| [3D]&lt;br /&gt;
| Gets the 3d object at the specified screen position, third parameter true if it should do box collision.&lt;br /&gt;
|-&lt;br /&gt;
| get3dobjectatmouse(boolean)&lt;br /&gt;
| [3D]&lt;br /&gt;
| Gets the 3d object at the mouse.  Parameter true if it should do box collision.&lt;br /&gt;
|-&lt;br /&gt;
| get3dobjectbyray(string, string)&lt;br /&gt;
| [3D]&lt;br /&gt;
| returns object&lt;br /&gt;
|-&lt;br /&gt;
| get3dobjectsbybox(string, string)&lt;br /&gt;
| [3D]&lt;br /&gt;
| 1st parameter defines the box {minx,miny,minz, maxx,maxy,maxz}.  Second parameter specifies the type of object to find (e.g. &amp;quot;staticts,terrain,interior&amp;quot;)&lt;br /&gt;
|-&lt;br /&gt;
| get3dscreenposition(string, boolean)&lt;br /&gt;
| [3D]&lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| getanglesfromvector({x, y, z})&lt;br /&gt;
|&lt;br /&gt;
| Returns an array that contains the angles the 3D vector {x, y, z} makes with the X-Y and X-Z axes.&lt;br /&gt;
|-&lt;br /&gt;
| getascii(string)&lt;br /&gt;
|&lt;br /&gt;
| Returns the [http://www.asciitable.com/ ascii] code for string.&lt;br /&gt;
|-&lt;br /&gt;
| getbasepackage()&lt;br /&gt;
|&lt;br /&gt;
| returns object&lt;br /&gt;
|-&lt;br /&gt;
| getboxcenter(string)&lt;br /&gt;
|&lt;br /&gt;
| Returns an array containing the center of a 3D box specified by string ({x0,y0,z0,x1,y1,z1,...}).&lt;br /&gt;
|-&lt;br /&gt;
| getdesktopresolution()&lt;br /&gt;
|&lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| getdisplaydevicelist()&lt;br /&gt;
|&lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| getdownloadedupdatepackagesize()&lt;br /&gt;
|&lt;br /&gt;
| Returns the size of the downloaded update package.&lt;br /&gt;
|-&lt;br /&gt;
| getdownloadingpackage()&lt;br /&gt;
|&lt;br /&gt;
| Returns a reference to current update package being downloaded.&lt;br /&gt;
|-&lt;br /&gt;
| getdownloadingpackagescount()&lt;br /&gt;
|&lt;br /&gt;
| Returns a count of the number of update packages to download.&lt;br /&gt;
|-&lt;br /&gt;
| getdropz(string)&lt;br /&gt;
|&lt;br /&gt;
| returns float&lt;br /&gt;
|-&lt;br /&gt;
| getExtension(string)&lt;br /&gt;
|&lt;br /&gt;
| This function is the same as extractFileExt().  Takes in a file name, and returns its extension.&lt;br /&gt;
|-&lt;br /&gt;
| getfilemodtime(string)&lt;br /&gt;
|&lt;br /&gt;
| Returns a timestamp of when the file was last modified (in unix time compatible to timevar2). This function accepts both exact file path and plain file name.&lt;br /&gt;
|-&lt;br /&gt;
| gethttprequest(string, integer, string)&lt;br /&gt;
| &lt;br /&gt;
| returns object (This function is the same as requestHttp())&lt;br /&gt;
|-&lt;br /&gt;
| getimgheight(string)&lt;br /&gt;
|&lt;br /&gt;
| Returns the height (in pixels) of the filename indicated by string.&lt;br /&gt;
|-&lt;br /&gt;
| getimgpixel(string, integer, integer)&lt;br /&gt;
|&lt;br /&gt;
| returns object&lt;br /&gt;
|-&lt;br /&gt;
| getimgwidth(string)&lt;br /&gt;
|&lt;br /&gt;
| Returns the width(in pixels) of the filename indicated by string.&lt;br /&gt;
|-&lt;br /&gt;
| getkeycode(string)&lt;br /&gt;
|&lt;br /&gt;
| Returns the keycode of the key indicated by string.  The keycode returned can be used in keydown2().&lt;br /&gt;
|-&lt;br /&gt;
| getloginaccountname()&lt;br /&gt;
|&lt;br /&gt;
| Presumably used for the login server.  Use player.account instead.&lt;br /&gt;
|-&lt;br /&gt;
| getmapx(string)&lt;br /&gt;
| &lt;br /&gt;
| Gets the x coordinate location in the gmap of the level indicated by string.  The top-left level starts at (0, 0).&lt;br /&gt;
|-&lt;br /&gt;
| getmapy(string)&lt;br /&gt;
|&lt;br /&gt;
| Gets the y coordinate location in the gmap of the level indicated by string.  The top-left level starts at (0, 0).&lt;br /&gt;
|-&lt;br /&gt;
| getmusicfilename()&lt;br /&gt;
|&lt;br /&gt;
| Returns the filename of the music currently playing.&lt;br /&gt;
|-&lt;br /&gt;
| getmusicstatus()&lt;br /&gt;
|&lt;br /&gt;
| Returns the status of the music currently playing.&lt;br /&gt;
|-&lt;br /&gt;
| getmusictags()&lt;br /&gt;
|&lt;br /&gt;
| Returns the tags of the music currently playing.  This function can be used to retrieve the title and artist info of the music.&lt;br /&gt;
|-&lt;br /&gt;
| getnearestplayer(float, float)&lt;br /&gt;
|&lt;br /&gt;
| Deprecated.  Use findnearestplayer() instead.&lt;br /&gt;
|-&lt;br /&gt;
| getnearestplayers(float, float)&lt;br /&gt;
|&lt;br /&gt;
| Deprecated.  Use findnearestplayers() instead.&lt;br /&gt;
|-&lt;br /&gt;
| getpackagesdownloadcomplete()&lt;br /&gt;
|&lt;br /&gt;
| Returns 'true' if the package downloads are complete.&lt;br /&gt;
|-&lt;br /&gt;
| getpackagesdownloaded()&lt;br /&gt;
|&lt;br /&gt;
| Returns 'true' if the most recent packages are already downloaded.&lt;br /&gt;
|-&lt;br /&gt;
| getplatform()&lt;br /&gt;
|&lt;br /&gt;
| Returns the platform that the player is using.  (i.e. windows, mac, or linux)&lt;br /&gt;
|-&lt;br /&gt;
| getresolutionlist(string)&lt;br /&gt;
|&lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| getservername()&lt;br /&gt;
|&lt;br /&gt;
| Returns the name of the server the player is currently connected to.&lt;br /&gt;
|-&lt;br /&gt;
| getstringkeys(string)&lt;br /&gt;
|&lt;br /&gt;
| Returns an array of the variables that begins with the supplied string.&lt;br /&gt;
|-&lt;br /&gt;
| getterraintexture(float, float)&lt;br /&gt;
|&lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| getterraintextureindex(float, float)&lt;br /&gt;
|&lt;br /&gt;
| returns integer&lt;br /&gt;
|-&lt;br /&gt;
| gettextheight(float zoom, string style, string font)&lt;br /&gt;
|&lt;br /&gt;
| returns integer - The height in pixels of the text with the given zoom, style and font.&lt;br /&gt;
|-&lt;br /&gt;
| gettextwidth(float zoom, string style, string font, string text)&lt;br /&gt;
|&lt;br /&gt;
| returns integer - The width of the text with the given zoom, style, font and text.&lt;br /&gt;
|-&lt;br /&gt;
| gettileset()&lt;br /&gt;
|&lt;br /&gt;
| returns string - the current main tileset (pics1.png, picso.png etc.)&lt;br /&gt;
|-&lt;br /&gt;
| gettilesettype()&lt;br /&gt;
|&lt;br /&gt;
| returns integer - the current tileset type (pics1.png:0, picso.png:5 etc.)&lt;br /&gt;
|-&lt;br /&gt;
| gettotalupdatepackagesize()&lt;br /&gt;
|&lt;br /&gt;
| returns integer - The total size of the update packages.&lt;br /&gt;
|-&lt;br /&gt;
| getupdatepackage(string name)&lt;br /&gt;
|&lt;br /&gt;
| returns object - A reference to the update package with the given name.&lt;br /&gt;
|-&lt;br /&gt;
| getvectorfromangles(float, float)&lt;br /&gt;
|&lt;br /&gt;
| returns string&lt;br /&gt;
|- &lt;br /&gt;
| getz(float, float)&lt;br /&gt;
|&lt;br /&gt;
| returns float&lt;br /&gt;
|-&lt;br /&gt;
| graalcontrolhasfocus(bool)&lt;br /&gt;
|&lt;br /&gt;
| returns boolean - Whether or not the graal control has focus.  Parameter says if it should also check if the chat bar has the focus&lt;br /&gt;
|-&lt;br /&gt;
| hideplayer(float time)&lt;br /&gt;
|&lt;br /&gt;
| Hides player for the specified amount of time.&lt;br /&gt;
|-&lt;br /&gt;
| hidesword(float time)&lt;br /&gt;
|&lt;br /&gt;
| Hides the player's sword for the specified amount of time.&lt;br /&gt;
|-&lt;br /&gt;
| hitnpc(int index, float halfhearts, float fromx, float fromy)&lt;br /&gt;
|&lt;br /&gt;
| Hit's npc with specified index causing the specified amount of halfhearts in damage. It also knocks back the npc based on the from X and Y coordinate passed to it.&lt;br /&gt;
|-&lt;br /&gt;
| hitobjects(float power, float x, float y)&lt;br /&gt;
|&lt;br /&gt;
| Hurts all the npcs with the specified power on the position passed to it.&lt;br /&gt;
|-&lt;br /&gt;
| hitplayer(int index, float halfhearts, float fromx, float fromy)&lt;br /&gt;
|&lt;br /&gt;
| Hit's player with specified index causing the specified amount of halfhearts in damage. It also knocks back the player based on the from X and Y coordinate passed to it. Use 0 as the index to hit your own player.&lt;br /&gt;
|-&lt;br /&gt;
| isadminguild(str guildname)&lt;br /&gt;
| &lt;br /&gt;
| returns boolean - If the passed guildname is an admin guild or not.&lt;br /&gt;
|-&lt;br /&gt;
| isclassloaded(str classname)&lt;br /&gt;
|&lt;br /&gt;
| returns boolean - If the passed classname is loaded for the client.&lt;br /&gt;
|-&lt;br /&gt;
| iscursoron()&lt;br /&gt;
|&lt;br /&gt;
| returns boolean - If the cursor is on or not.&lt;br /&gt;
|-&lt;br /&gt;
| isdevicefullscreenonly(str device)&lt;br /&gt;
|&lt;br /&gt;
| returns boolean - If the device is full screen only or not.&lt;br /&gt;
|-&lt;br /&gt;
| isdownloading(str filename)&lt;br /&gt;
|&lt;br /&gt;
| returns boolean - If a file is currently downloaded or requested from the server.&lt;br /&gt;
|-&lt;br /&gt;
| isdownloadingfiles()&lt;br /&gt;
|&lt;br /&gt;
| returns boolean - checks if Graal is currently downloading or requesting files from the server.&lt;br /&gt;
|-&lt;br /&gt;
| isfullscreenmode()&lt;br /&gt;
|&lt;br /&gt;
| returns boolean - checks if Graal is currently in fullscreen mode.&lt;br /&gt;
|-&lt;br /&gt;
| isimgrectangletransparent(str, int, int, int, int)&lt;br /&gt;
| &lt;br /&gt;
| returns boolean&lt;br /&gt;
|-&lt;br /&gt;
| ismusicplaying()&lt;br /&gt;
| &lt;br /&gt;
| returns boolean&lt;br /&gt;
|-&lt;br /&gt;
| isobject(str)&lt;br /&gt;
| &lt;br /&gt;
| returns boolean&lt;br /&gt;
|-&lt;br /&gt;
| issoundplaying(str)&lt;br /&gt;
| &lt;br /&gt;
| returns boolean&lt;br /&gt;
|-&lt;br /&gt;
| keydown(int)&lt;br /&gt;
| &lt;br /&gt;
| returns boolean&lt;br /&gt;
|-&lt;br /&gt;
| keydown2(int, bool)&lt;br /&gt;
| &lt;br /&gt;
| returns boolean&lt;br /&gt;
|-&lt;br /&gt;
| keydown2global(int, bool)&lt;br /&gt;
| &lt;br /&gt;
| returns boolean&lt;br /&gt;
|-&lt;br /&gt;
| keydownglobal(int)&lt;br /&gt;
| &lt;br /&gt;
| returns boolean&lt;br /&gt;
|-&lt;br /&gt;
| keyname(int)&lt;br /&gt;
| &lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| lay2(str, float, float)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| lightscene()&lt;br /&gt;
| &lt;br /&gt;
| returns boolean&lt;br /&gt;
|-&lt;br /&gt;
| loadclass(str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| loadmap(str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| loadtranslation(str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| lowercase(str)&lt;br /&gt;
| &lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| ltmfs(bool)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| ltmmax(float, float)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| ltmmin(float, float)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| makescreenshot2(str, int, float, float, float, int, int)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| matrixcreate(str, str)&lt;br /&gt;
| &lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| matrixcreatefromeuler(str)&lt;br /&gt;
| &lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| matrixmulpoint(str, str)&lt;br /&gt;
| &lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| matrixmultiply(str, str)&lt;br /&gt;
| &lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| matrixmulvector(str, str)&lt;br /&gt;
| &lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| md5(str)&lt;br /&gt;
| &lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| noplayerkilling()&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| onwall(float, float)&lt;br /&gt;
| &lt;br /&gt;
| returns boolean&lt;br /&gt;
|-&lt;br /&gt;
| onwall2(float, float, float, float)&lt;br /&gt;
| &lt;br /&gt;
| returns boolean&lt;br /&gt;
|-&lt;br /&gt;
| onwater(float, float)&lt;br /&gt;
| &lt;br /&gt;
| returns boolean&lt;br /&gt;
|-&lt;br /&gt;
| onwater2(float, float, float, float)&lt;br /&gt;
| &lt;br /&gt;
| returns boolean&lt;br /&gt;
|-&lt;br /&gt;
| opengraalurl(str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| openurl(str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| openurl2(str, int, int)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| play(str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| play2(str, float, float, float)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| play3d(str, bool, str, str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| playlooped(str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| playlooped2(str, float, float, float)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| popdialog()&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| pushdialog(obj)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| putleaps(int, float, float)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| radtodeg(float)&lt;br /&gt;
| &lt;br /&gt;
| returns float&lt;br /&gt;
|-&lt;br /&gt;
| randomstring(str)&lt;br /&gt;
| &lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| removetiledefs(str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| replaceani(str, str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| requestfiledeletion(str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| requestfilerename(str, str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| requestfilesmove(str, str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| requesthttp(str, int, str)&lt;br /&gt;
| &lt;br /&gt;
| returns object&lt;br /&gt;
|-&lt;br /&gt;
| requesttext(str, str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| requesturl(str)&lt;br /&gt;
| &lt;br /&gt;
| returns object&lt;br /&gt;
|-&lt;br /&gt;
| resetfocus()&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| rotationadd(str, str)&lt;br /&gt;
| &lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| rotationaddeuler(str, str)&lt;br /&gt;
| &lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| rotationfromeuler(str)&lt;br /&gt;
| &lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| rotationsub(str, str)&lt;br /&gt;
| &lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| rotationtoeuler(str)&lt;br /&gt;
| &lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| rungarbagecollector()&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| savelog(str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| say(int)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| say2(str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| screenx(float, float)&lt;br /&gt;
| &lt;br /&gt;
| returns integer&lt;br /&gt;
|-&lt;br /&gt;
| screeny(float, float)&lt;br /&gt;
| &lt;br /&gt;
| returns integer&lt;br /&gt;
|-&lt;br /&gt;
| selectfilefordownload(str)&lt;br /&gt;
| &lt;br /&gt;
| opens the select&lt;br /&gt;
|-&lt;br /&gt;
| selectfileforupload()&lt;br /&gt;
| &lt;br /&gt;
| opens the select&lt;br /&gt;
|-&lt;br /&gt;
| sendrpgmessage(str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| sendtext(str, str, params...)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| sendtorc(str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| serverwarp(str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| setani(str, str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| setbeltcolor(str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| setcoatcolor(str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| setcontentcontrol(obj)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| setcursor2(str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| seteffect(float, float, float, float)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| setfocus(float, float)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| setfogcolors(obj)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| setgender(str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| sethead(str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| setinteriorrendermode(int)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| setletters(str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| setmap(str, str, float, float)&lt;br /&gt;
| &lt;br /&gt;
| sets a text map (you can see the tiles of other levels but not the npcs), parameters are text file with level names, the map image (not used anymore), default x and y for the head icons; use gmaps if possible instead of this&lt;br /&gt;
|-&lt;br /&gt;
| setminimap(str, str, float, float)&lt;br /&gt;
| &lt;br /&gt;
| parameters are a text file with level names, the image, default x and y; use gmaps if possible instead of this&lt;br /&gt;
|-&lt;br /&gt;
| setmusicvolume(float, float)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| setplayerdir(str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| setshield(str, int)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| setshoecolor(str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| setshootparams(str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| setskincolor(str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| setskybandcolors(obj)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| setskybandsizes(obj)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| setsleevecolor(str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| setspritesimage(str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| setstatusimage(str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| setsuncolors(obj)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| setsword(str, int)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| setterrainrendermode(int)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| showstats(int)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| spyfire(int, int)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| startrecordvideo()&lt;br /&gt;
| &lt;br /&gt;
| returns boolean&lt;br /&gt;
|-&lt;br /&gt;
| stopmidi()&lt;br /&gt;
| &lt;br /&gt;
| same as stopmusic(), kept for compatibility&lt;br /&gt;
|-&lt;br /&gt;
| stopmusic()&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| stoprecordvideo()&lt;br /&gt;
| &lt;br /&gt;
| returns boolean&lt;br /&gt;
|-&lt;br /&gt;
| stopsound(str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| strcmp(str, str)&lt;br /&gt;
| &lt;br /&gt;
| returns integer&lt;br /&gt;
|-&lt;br /&gt;
| strequals(str, str)&lt;br /&gt;
| &lt;br /&gt;
| returns boolean&lt;br /&gt;
|-&lt;br /&gt;
| switchtoopengl()&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| synctimeofday(float, float)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| takeplayercarry()&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| takeplayerhorse()&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| testplayer(float, float)&lt;br /&gt;
| &lt;br /&gt;
| returns integer&lt;br /&gt;
|-&lt;br /&gt;
| trace(str)&lt;br /&gt;
| &lt;br /&gt;
| same as echo()&lt;br /&gt;
|-&lt;br /&gt;
| triggeraction(float, float, str, params...)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| triggerserver(str, str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| update3dterrain(float, float, float, float)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| updateboard(int, int, int, int)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| updateterrain()&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| updatevisibledistance()&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| uploadfile(str)&lt;br /&gt;
| &lt;br /&gt;
| uploads a file, you must provide the full path provided by a onDropFiles() event, also this will only work if the scripted RC has currently a file browser window open; once the file is uploaded an onFilesUploaded event will be invoked&lt;br /&gt;
|-&lt;br /&gt;
| uppercase(str)&lt;br /&gt;
| &lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| vectoradd(str, str)&lt;br /&gt;
| &lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| vectorcross(str, str)&lt;br /&gt;
| &lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| vectordist(str, str)&lt;br /&gt;
| &lt;br /&gt;
| returns float&lt;br /&gt;
|-&lt;br /&gt;
| vectordot(str, str)&lt;br /&gt;
| &lt;br /&gt;
| returns float&lt;br /&gt;
|-&lt;br /&gt;
| vectorlen(str)&lt;br /&gt;
| &lt;br /&gt;
| returns float&lt;br /&gt;
|-&lt;br /&gt;
| vectornormalize(str)&lt;br /&gt;
| &lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| vectororthobasis(str)&lt;br /&gt;
| &lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| vectorscale(str, float)&lt;br /&gt;
| &lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| vectorsub(str, str)&lt;br /&gt;
| &lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| worldx(float, float)&lt;br /&gt;
| &lt;br /&gt;
| returns float&lt;br /&gt;
|-&lt;br /&gt;
| worldy(float, float)&lt;br /&gt;
| &lt;br /&gt;
| returns float&lt;br /&gt;
|-&lt;br /&gt;
| wraptext(int, str, str)&lt;br /&gt;
| &lt;br /&gt;
| returns object&lt;br /&gt;
|-&lt;br /&gt;
| wraptext2(int, float, str, str)&lt;br /&gt;
| &lt;br /&gt;
| returns object&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{:Creation/Dev/Script/Client}}&lt;br /&gt;
&lt;br /&gt;
=GUI Objects=&lt;br /&gt;
GUI Objects are currently well documented starting here [[Creation/Dev/Script/Client/GuiControl]].&lt;br /&gt;
&lt;br /&gt;
=Global=&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  $pref::audio::choosenvoicecodec - integer&lt;br /&gt;
  $pref::audio::microactivatebyvolume - boolean&lt;br /&gt;
  $pref::audio::microactivationlevel - integer&lt;br /&gt;
  $pref::audio::microinputdevice - integer&lt;br /&gt;
  $pref::audio::microon - boolean&lt;br /&gt;
  $pref::audio::microvolumefactor - integer&lt;br /&gt;
  $pref::audio::midivolume - integer&lt;br /&gt;
  $pref::audio::mp3volume - integer&lt;br /&gt;
  $pref::audio::radiovolume - integer&lt;br /&gt;
  $pref::audio::reversestereo - boolean&lt;br /&gt;
  $pref::audio::sfxvolume - integer&lt;br /&gt;
  $pref::audio::voicevolume - integer&lt;br /&gt;
  $pref::capture::allowbyscript - boolean [R]&lt;br /&gt;
  $pref::capture::area - string&lt;br /&gt;
  $pref::capture::audiobitrate - integer&lt;br /&gt;
  $pref::capture::disabledaynight - boolean&lt;br /&gt;
  $pref::capture::format - string&lt;br /&gt;
  $pref::capture::fps - integer&lt;br /&gt;
  $pref::capture::hideinterface - boolean&lt;br /&gt;
  $pref::capture::recordaudio - boolean&lt;br /&gt;
  $pref::capture::showmouse - boolean&lt;br /&gt;
  $pref::capture::size - string&lt;br /&gt;
  $pref::capture::videobitrate - integer&lt;br /&gt;
  $pref::graal::allowglobalpms - boolean&lt;br /&gt;
  $pref::graal::automapping - boolean&lt;br /&gt;
  $pref::graal::defaultfontname - string&lt;br /&gt;
  $pref::graal::defaultfontsize - integer&lt;br /&gt;
  $pref::graal::dontconnectlevels - boolean&lt;br /&gt;
  $pref::graal::dontloadlistheads - boolean&lt;br /&gt;
  $pref::graal::dontsavepasswords - boolean&lt;br /&gt;
  $pref::graal::dontsavepms - boolean&lt;br /&gt;
  $pref::graal::fixedport - boolean&lt;br /&gt;
  $pref::graal::fixedudpport - integer&lt;br /&gt;
  $pref::graal::language - string&lt;br /&gt;
  $pref::graal::limitnicknames - boolean&lt;br /&gt;
  $pref::graal::loadbuddylistfromserver - boolean&lt;br /&gt;
  $pref::graal::nicknamelimit - integer&lt;br /&gt;
  $pref::graal::nomassmessages - boolean&lt;br /&gt;
  $pref::graal::notoalls - boolean&lt;br /&gt;
  $pref::graal::noudp - boolean&lt;br /&gt;
  $pref::graal::showyourselfonbuddylists - boolean&lt;br /&gt;
  $pref::input::mousesensitivity - float&lt;br /&gt;
  $pref::interior::lockarrays - boolean&lt;br /&gt;
  $pref::video::defaultguistyle - string&lt;br /&gt;
  $pref::video::detailfactor - float&lt;br /&gt;
  $pref::video::fogdistance - float&lt;br /&gt;
  $pref::video::fullscreenmode - string&lt;br /&gt;
  $pref::video::resolution - integer&lt;br /&gt;
  $pref::video::screenshotformat - string&lt;br /&gt;
  $pref::video::visibledistance - float&lt;br /&gt;
  $pref::video::windowmode - string&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Fowlplay4</name></author>
	</entry>
	<entry>
		<id>https://graalonline.net/index.php?title=Creation/Dev/Script/Client/GuiControl&amp;diff=18127</id>
		<title>Creation/Dev/Script/Client/GuiControl</title>
		<link rel="alternate" type="text/html" href="https://graalonline.net/index.php?title=Creation/Dev/Script/Client/GuiControl&amp;diff=18127"/>
		<updated>2011-04-09T19:42:01Z</updated>

		<summary type="html">&lt;p&gt;Fowlplay4: /* Example */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:Script_Object}}&lt;br /&gt;
&lt;br /&gt;
Inherits from [[Creation/Dev/Script/Client/TGraalVar|TGraalVar]].&lt;br /&gt;
&lt;br /&gt;
=Description=&lt;br /&gt;
&lt;br /&gt;
[[Image:Guicontrol_panel.png]]&lt;br /&gt;
&lt;br /&gt;
GuiControl is the base GUI control, therefore general functions listed here are available to all GUI controls. Most of the time it is used as container for positioning groups of other controls. It can either have a border (border=1..5) or just be plain transparent, and just display its child controls.&lt;br /&gt;
&lt;br /&gt;
=Variables=&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;2&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
| '''Name'''&lt;br /&gt;
| '''Type'''&lt;br /&gt;
| '''Description'''&lt;br /&gt;
|-&lt;br /&gt;
| active&lt;br /&gt;
| boolean&lt;br /&gt;
| whether the control can be used (e.g. a button can be clicked only if active)&lt;br /&gt;
|-&lt;br /&gt;
| awake&lt;br /&gt;
| boolean (read only)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| canmove&lt;br /&gt;
| boolean&lt;br /&gt;
| allows the control to be moved by the mouse&lt;br /&gt;
|-&lt;br /&gt;
| canresize&lt;br /&gt;
| boolean&lt;br /&gt;
| allows the control to be resized by dragging the corner or side with the mouse&lt;br /&gt;
|-&lt;br /&gt;
| controls&lt;br /&gt;
| object (read only; see ''addControl()'')&lt;br /&gt;
| array of [[Creation/Dev/Script/Client/GuiControl|GuiControl]] (subcontrols)&lt;br /&gt;
|-&lt;br /&gt;
| cursor&lt;br /&gt;
| int&lt;br /&gt;
|  cursor when the mouse is hovered over the control - options are default, hand/pointer, text, crosshair, column-reisze, row-resize, wait, progress, and help (some are not available based on platform)&lt;br /&gt;
|-&lt;br /&gt;
| editing&lt;br /&gt;
| boolean&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| extent&lt;br /&gt;
| string&lt;br /&gt;
| Can be used instead of width and height. Used like this: &amp;quot;123 456&amp;quot;, where 123 is width and 456 is height. There is some syntactic sugar that allows you to treat it like an array, but it is not a good idea to do this because it does not work when you try to assign to e.g extent[0]. See 'width' and 'height' instead for this.&lt;br /&gt;
|-&lt;br /&gt;
| flickering&lt;br /&gt;
| boolean&lt;br /&gt;
| Allows the control to periodically show/hide itself.&lt;br /&gt;
|-&lt;br /&gt;
| flickertime&lt;br /&gt;
| integer&lt;br /&gt;
| The time between the show and hides in flickering.&lt;br /&gt;
|-&lt;br /&gt;
| height&lt;br /&gt;
| integer&lt;br /&gt;
| can be used instead of extent&lt;br /&gt;
|-&lt;br /&gt;
| hint&lt;br /&gt;
| string&lt;br /&gt;
| tooltip text displayed when you hover the mouse over the control&lt;br /&gt;
|-&lt;br /&gt;
| horizsizing&lt;br /&gt;
| string&lt;br /&gt;
| specifies the horizontal resizing behaviour when the parent control is resized: right, width, left, center or relative&lt;br /&gt;
|-&lt;br /&gt;
| layer&lt;br /&gt;
| integer (read only)&lt;br /&gt;
| image layer the control is on&lt;br /&gt;
|-&lt;br /&gt;
| minextent&lt;br /&gt;
| string&lt;br /&gt;
| minimum size as a string like &amp;quot;200 300&amp;quot;, though there is some support for arrays which is not complete (e.g. you cannot set minextent[0])&lt;br /&gt;
|-&lt;br /&gt;
| minsize&lt;br /&gt;
| string&lt;br /&gt;
| the same as &amp;quot;minextent&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| parent&lt;br /&gt;
| object (read only)&lt;br /&gt;
| the parent [[Creation/Dev/Script/Client/GuiControl|GuiControl]]&lt;br /&gt;
|-&lt;br /&gt;
| position&lt;br /&gt;
| string&lt;br /&gt;
| Can be used instead of x and y. Used like this: &amp;quot;123 456&amp;quot;, where 123 is x and 456 is y. There is some syntactic sugar that allows you to treat it like an array, which does not work when you try to assign to e.g position[0]. See 'x' and 'y' instead for this.&lt;br /&gt;
|-&lt;br /&gt;
| profile&lt;br /&gt;
| object&lt;br /&gt;
| controls the way the profile looks and acts - see [[Creation/Dev/Script/Client/GuiControlProfile|GuiControlProfile]]&lt;br /&gt;
|-&lt;br /&gt;
| resizeheight&lt;br /&gt;
| boolean&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| resizewidth&lt;br /&gt;
| boolean&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| scrolllinex&lt;br /&gt;
| integer&lt;br /&gt;
| lines to scroll vertically&lt;br /&gt;
|-&lt;br /&gt;
| scrollliney&lt;br /&gt;
| integer&lt;br /&gt;
| lines to scroll horizontally&lt;br /&gt;
|-&lt;br /&gt;
| showhint&lt;br /&gt;
| boolean&lt;br /&gt;
| whether to show the hint or not&lt;br /&gt;
|-&lt;br /&gt;
| useownprofile&lt;br /&gt;
| boolean&lt;br /&gt;
| allows you to set custom variables for the profile without modifying the profile at every instance it is used, set it to true before changing things&lt;br /&gt;
|-&lt;br /&gt;
| vertsizing&lt;br /&gt;
| string&lt;br /&gt;
| specifies the vertical resizing behaviour when the parent control is resized: bottom, height, top, center or relative&lt;br /&gt;
|-&lt;br /&gt;
| visible&lt;br /&gt;
| boolean&lt;br /&gt;
| whether the control can be seen or is hidden&lt;br /&gt;
|-&lt;br /&gt;
| width&lt;br /&gt;
| integer&lt;br /&gt;
| can be used instead of extent&lt;br /&gt;
|-&lt;br /&gt;
| x&lt;br /&gt;
| integer&lt;br /&gt;
| can be used instead of position&lt;br /&gt;
|-&lt;br /&gt;
| y&lt;br /&gt;
| integer&lt;br /&gt;
| can be used instead of position&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Functions=&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;2&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
| '''Name'''&lt;br /&gt;
| '''Return Type'''&lt;br /&gt;
| '''Description'''&lt;br /&gt;
|-&lt;br /&gt;
| addcontrol(obj)&lt;br /&gt;
|&lt;br /&gt;
| adds the control inside another control&lt;br /&gt;
|-&lt;br /&gt;
| bringtofront()&lt;br /&gt;
|&lt;br /&gt;
| bring the control to the front&lt;br /&gt;
|-&lt;br /&gt;
| clearControls()&lt;br /&gt;
|&lt;br /&gt;
| removes all controls inside the control at once&lt;br /&gt;
|-&lt;br /&gt;
| destroy()&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| getparent()&lt;br /&gt;
| object&lt;br /&gt;
| returns parent object&lt;br /&gt;
|-&lt;br /&gt;
| globaltolocalcoord({x,y})&lt;br /&gt;
| {x,y}&lt;br /&gt;
| converts global screen coordinates to a position relative to the controls origin (0,0), can be used to know where exactly the user has clicked inside a control&lt;br /&gt;
|-&lt;br /&gt;
| hide()&lt;br /&gt;
|&lt;br /&gt;
| Hide the control&lt;br /&gt;
|-&lt;br /&gt;
| isfirstresponder()&lt;br /&gt;
| boolean&lt;br /&gt;
| Returns whether or not this control is the first responder&lt;br /&gt;
|-&lt;br /&gt;
| localtoglobalcoord({x,y})&lt;br /&gt;
| {x,y}&lt;br /&gt;
| converts a position relative to the controls origin (0,0) to global screen coordinates, can be used to know where on the screen a control is displayed in case it is a child of another control (e.g. GuiWindowCtrl or GuiScrollCtrl)&lt;br /&gt;
|-&lt;br /&gt;
| makefirstresponder(bool)&lt;br /&gt;
|&lt;br /&gt;
| makes the control the first responder for key input&lt;br /&gt;
|-&lt;br /&gt;
| pushtoback()&lt;br /&gt;
|&lt;br /&gt;
| pushes the control to the back&lt;br /&gt;
|-&lt;br /&gt;
| resize(int x, int y, int width, int height)&lt;br /&gt;
|&lt;br /&gt;
| resizes the control to the specified dimensions&lt;br /&gt;
|-&lt;br /&gt;
| show()&lt;br /&gt;
|&lt;br /&gt;
| shows the control&lt;br /&gt;
|-&lt;br /&gt;
| showtop()&lt;br /&gt;
|&lt;br /&gt;
| calls show(), tabfirst() and bringtofront()&lt;br /&gt;
|-&lt;br /&gt;
| tabfirst()&lt;br /&gt;
| object&lt;br /&gt;
| when tab is pressed, the control is selected first, similar to web forms&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Events=&lt;br /&gt;
&lt;br /&gt;
onAdd() - is invoked when the control is added to another control (addcontrol function)&lt;br /&gt;
&lt;br /&gt;
onRemove() - is invoked when the control is removed from its parent&lt;br /&gt;
&lt;br /&gt;
onShow() - is invoked when the control is shown or gets awakened while being 'visible'&lt;br /&gt;
&lt;br /&gt;
onHide() - is invoked when the control is made hidden&lt;br /&gt;
&lt;br /&gt;
onWake() - is invoked when the control is awakened and becomes visible on the screen&lt;br /&gt;
&lt;br /&gt;
onSleep() - is invoked for windows when a dialog window is removed from the screen&lt;br /&gt;
&lt;br /&gt;
onMove(newx,newy) - is invoked when the control is moved&lt;br /&gt;
&lt;br /&gt;
onResize(newwidth,newheight) - is invoked when the control is resized&lt;br /&gt;
&lt;br /&gt;
onAction() - is invoked when a button control is pressed, you press the enter-key in a text edit control, or move a slider control, &lt;br /&gt;
&lt;br /&gt;
onDialogPush() - is invoked when a dialog control is placed on the screen (using pushDialog(control))&lt;br /&gt;
&lt;br /&gt;
onDialogPop() - is invoked when a dialog control is removed from the screen again (using popDialog())&lt;br /&gt;
&lt;br /&gt;
onKeyDown(keycode,keystring,scancode) - a key has been pressed while the control had the input focus (makeFirstResponder())&lt;br /&gt;
&lt;br /&gt;
onKeyUp(keycode,keystring,scancode) - the key has been released&lt;br /&gt;
&lt;br /&gt;
onMouseYawPitch(xaxis,yaxis) - mouse event in Graal3D when the mouse has been turned off&lt;br /&gt;
&lt;br /&gt;
onMouseDown(keymodifier,mousescreenx,mousescreeny,clickcount) - the left mouse button has been pressed inside this control&lt;br /&gt;
&lt;br /&gt;
onMouseUp(keymodifier,mousescreenx,mousescreeny) - the left mouse button has been released&lt;br /&gt;
&lt;br /&gt;
onMouseEnter(keymodifier,mousescreenx,mousescreeny) - the mouse moved inside this control&lt;br /&gt;
&lt;br /&gt;
onMouseLeave(keymodifier,mousescreenx,mousescreeny) - the mouse left the control&lt;br /&gt;
&lt;br /&gt;
onMouseDragged(keymodifier,mousescreenx,mousescreeny) - the mouse is moved while the left mouse button is pressed&lt;br /&gt;
&lt;br /&gt;
onMouseMove(keymodifier,mousescreenx,mousescreeny) - the mouse has been moved&lt;br /&gt;
&lt;br /&gt;
onRightMouseDown(keymodifier,mousescreenx,mousescreeny,clickcount) - the right mouse button has been pressed&lt;br /&gt;
&lt;br /&gt;
onRightMouseUp(keymodifier,mousescreenx,mousescreeny) - the right mouse button has been released&lt;br /&gt;
&lt;br /&gt;
onRightMouseDragged(keymodifier,mousescreenx,mousescreeny) - the mouse has been moved while the right mouse button is pressed&lt;br /&gt;
&lt;br /&gt;
onMouseWheelUp(keymodifier) - the mouse wheel has been scrolled up&lt;br /&gt;
&lt;br /&gt;
onMouseWheelDown(keymodifier) - the mouse wheel has been scrolled down&lt;br /&gt;
&lt;br /&gt;
=Example=&lt;br /&gt;
&lt;br /&gt;
  new GuiControl(&amp;quot;Test_Back&amp;quot;) {&lt;br /&gt;
    useownprofile = true;&lt;br /&gt;
    profile.border = 3;&lt;br /&gt;
    x = 10;&lt;br /&gt;
    y = 10;&lt;br /&gt;
    width = 160;&lt;br /&gt;
    height = 80;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{:Creation/Dev/Script/Client}}&lt;/div&gt;</summary>
		<author><name>Fowlplay4</name></author>
	</entry>
	<entry>
		<id>https://graalonline.net/index.php?title=Creation/Dev/Script/Client/GuiControl&amp;diff=18126</id>
		<title>Creation/Dev/Script/Client/GuiControl</title>
		<link rel="alternate" type="text/html" href="https://graalonline.net/index.php?title=Creation/Dev/Script/Client/GuiControl&amp;diff=18126"/>
		<updated>2011-04-09T19:41:41Z</updated>

		<summary type="html">&lt;p&gt;Fowlplay4: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:Script_Object}}&lt;br /&gt;
&lt;br /&gt;
Inherits from [[Creation/Dev/Script/Client/TGraalVar|TGraalVar]].&lt;br /&gt;
&lt;br /&gt;
=Description=&lt;br /&gt;
&lt;br /&gt;
[[Image:Guicontrol_panel.png]]&lt;br /&gt;
&lt;br /&gt;
GuiControl is the base GUI control, therefore general functions listed here are available to all GUI controls. Most of the time it is used as container for positioning groups of other controls. It can either have a border (border=1..5) or just be plain transparent, and just display its child controls.&lt;br /&gt;
&lt;br /&gt;
=Variables=&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;2&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
| '''Name'''&lt;br /&gt;
| '''Type'''&lt;br /&gt;
| '''Description'''&lt;br /&gt;
|-&lt;br /&gt;
| active&lt;br /&gt;
| boolean&lt;br /&gt;
| whether the control can be used (e.g. a button can be clicked only if active)&lt;br /&gt;
|-&lt;br /&gt;
| awake&lt;br /&gt;
| boolean (read only)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| canmove&lt;br /&gt;
| boolean&lt;br /&gt;
| allows the control to be moved by the mouse&lt;br /&gt;
|-&lt;br /&gt;
| canresize&lt;br /&gt;
| boolean&lt;br /&gt;
| allows the control to be resized by dragging the corner or side with the mouse&lt;br /&gt;
|-&lt;br /&gt;
| controls&lt;br /&gt;
| object (read only; see ''addControl()'')&lt;br /&gt;
| array of [[Creation/Dev/Script/Client/GuiControl|GuiControl]] (subcontrols)&lt;br /&gt;
|-&lt;br /&gt;
| cursor&lt;br /&gt;
| int&lt;br /&gt;
|  cursor when the mouse is hovered over the control - options are default, hand/pointer, text, crosshair, column-reisze, row-resize, wait, progress, and help (some are not available based on platform)&lt;br /&gt;
|-&lt;br /&gt;
| editing&lt;br /&gt;
| boolean&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| extent&lt;br /&gt;
| string&lt;br /&gt;
| Can be used instead of width and height. Used like this: &amp;quot;123 456&amp;quot;, where 123 is width and 456 is height. There is some syntactic sugar that allows you to treat it like an array, but it is not a good idea to do this because it does not work when you try to assign to e.g extent[0]. See 'width' and 'height' instead for this.&lt;br /&gt;
|-&lt;br /&gt;
| flickering&lt;br /&gt;
| boolean&lt;br /&gt;
| Allows the control to periodically show/hide itself.&lt;br /&gt;
|-&lt;br /&gt;
| flickertime&lt;br /&gt;
| integer&lt;br /&gt;
| The time between the show and hides in flickering.&lt;br /&gt;
|-&lt;br /&gt;
| height&lt;br /&gt;
| integer&lt;br /&gt;
| can be used instead of extent&lt;br /&gt;
|-&lt;br /&gt;
| hint&lt;br /&gt;
| string&lt;br /&gt;
| tooltip text displayed when you hover the mouse over the control&lt;br /&gt;
|-&lt;br /&gt;
| horizsizing&lt;br /&gt;
| string&lt;br /&gt;
| specifies the horizontal resizing behaviour when the parent control is resized: right, width, left, center or relative&lt;br /&gt;
|-&lt;br /&gt;
| layer&lt;br /&gt;
| integer (read only)&lt;br /&gt;
| image layer the control is on&lt;br /&gt;
|-&lt;br /&gt;
| minextent&lt;br /&gt;
| string&lt;br /&gt;
| minimum size as a string like &amp;quot;200 300&amp;quot;, though there is some support for arrays which is not complete (e.g. you cannot set minextent[0])&lt;br /&gt;
|-&lt;br /&gt;
| minsize&lt;br /&gt;
| string&lt;br /&gt;
| the same as &amp;quot;minextent&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| parent&lt;br /&gt;
| object (read only)&lt;br /&gt;
| the parent [[Creation/Dev/Script/Client/GuiControl|GuiControl]]&lt;br /&gt;
|-&lt;br /&gt;
| position&lt;br /&gt;
| string&lt;br /&gt;
| Can be used instead of x and y. Used like this: &amp;quot;123 456&amp;quot;, where 123 is x and 456 is y. There is some syntactic sugar that allows you to treat it like an array, which does not work when you try to assign to e.g position[0]. See 'x' and 'y' instead for this.&lt;br /&gt;
|-&lt;br /&gt;
| profile&lt;br /&gt;
| object&lt;br /&gt;
| controls the way the profile looks and acts - see [[Creation/Dev/Script/Client/GuiControlProfile|GuiControlProfile]]&lt;br /&gt;
|-&lt;br /&gt;
| resizeheight&lt;br /&gt;
| boolean&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| resizewidth&lt;br /&gt;
| boolean&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| scrolllinex&lt;br /&gt;
| integer&lt;br /&gt;
| lines to scroll vertically&lt;br /&gt;
|-&lt;br /&gt;
| scrollliney&lt;br /&gt;
| integer&lt;br /&gt;
| lines to scroll horizontally&lt;br /&gt;
|-&lt;br /&gt;
| showhint&lt;br /&gt;
| boolean&lt;br /&gt;
| whether to show the hint or not&lt;br /&gt;
|-&lt;br /&gt;
| useownprofile&lt;br /&gt;
| boolean&lt;br /&gt;
| allows you to set custom variables for the profile without modifying the profile at every instance it is used, set it to true before changing things&lt;br /&gt;
|-&lt;br /&gt;
| vertsizing&lt;br /&gt;
| string&lt;br /&gt;
| specifies the vertical resizing behaviour when the parent control is resized: bottom, height, top, center or relative&lt;br /&gt;
|-&lt;br /&gt;
| visible&lt;br /&gt;
| boolean&lt;br /&gt;
| whether the control can be seen or is hidden&lt;br /&gt;
|-&lt;br /&gt;
| width&lt;br /&gt;
| integer&lt;br /&gt;
| can be used instead of extent&lt;br /&gt;
|-&lt;br /&gt;
| x&lt;br /&gt;
| integer&lt;br /&gt;
| can be used instead of position&lt;br /&gt;
|-&lt;br /&gt;
| y&lt;br /&gt;
| integer&lt;br /&gt;
| can be used instead of position&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Functions=&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;2&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
| '''Name'''&lt;br /&gt;
| '''Return Type'''&lt;br /&gt;
| '''Description'''&lt;br /&gt;
|-&lt;br /&gt;
| addcontrol(obj)&lt;br /&gt;
|&lt;br /&gt;
| adds the control inside another control&lt;br /&gt;
|-&lt;br /&gt;
| bringtofront()&lt;br /&gt;
|&lt;br /&gt;
| bring the control to the front&lt;br /&gt;
|-&lt;br /&gt;
| clearControls()&lt;br /&gt;
|&lt;br /&gt;
| removes all controls inside the control at once&lt;br /&gt;
|-&lt;br /&gt;
| destroy()&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| getparent()&lt;br /&gt;
| object&lt;br /&gt;
| returns parent object&lt;br /&gt;
|-&lt;br /&gt;
| globaltolocalcoord({x,y})&lt;br /&gt;
| {x,y}&lt;br /&gt;
| converts global screen coordinates to a position relative to the controls origin (0,0), can be used to know where exactly the user has clicked inside a control&lt;br /&gt;
|-&lt;br /&gt;
| hide()&lt;br /&gt;
|&lt;br /&gt;
| Hide the control&lt;br /&gt;
|-&lt;br /&gt;
| isfirstresponder()&lt;br /&gt;
| boolean&lt;br /&gt;
| Returns whether or not this control is the first responder&lt;br /&gt;
|-&lt;br /&gt;
| localtoglobalcoord({x,y})&lt;br /&gt;
| {x,y}&lt;br /&gt;
| converts a position relative to the controls origin (0,0) to global screen coordinates, can be used to know where on the screen a control is displayed in case it is a child of another control (e.g. GuiWindowCtrl or GuiScrollCtrl)&lt;br /&gt;
|-&lt;br /&gt;
| makefirstresponder(bool)&lt;br /&gt;
|&lt;br /&gt;
| makes the control the first responder for key input&lt;br /&gt;
|-&lt;br /&gt;
| pushtoback()&lt;br /&gt;
|&lt;br /&gt;
| pushes the control to the back&lt;br /&gt;
|-&lt;br /&gt;
| resize(int x, int y, int width, int height)&lt;br /&gt;
|&lt;br /&gt;
| resizes the control to the specified dimensions&lt;br /&gt;
|-&lt;br /&gt;
| show()&lt;br /&gt;
|&lt;br /&gt;
| shows the control&lt;br /&gt;
|-&lt;br /&gt;
| showtop()&lt;br /&gt;
|&lt;br /&gt;
| calls show(), tabfirst() and bringtofront()&lt;br /&gt;
|-&lt;br /&gt;
| tabfirst()&lt;br /&gt;
| object&lt;br /&gt;
| when tab is pressed, the control is selected first, similar to web forms&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Events=&lt;br /&gt;
&lt;br /&gt;
onAdd() - is invoked when the control is added to another control (addcontrol function)&lt;br /&gt;
&lt;br /&gt;
onRemove() - is invoked when the control is removed from its parent&lt;br /&gt;
&lt;br /&gt;
onShow() - is invoked when the control is shown or gets awakened while being 'visible'&lt;br /&gt;
&lt;br /&gt;
onHide() - is invoked when the control is made hidden&lt;br /&gt;
&lt;br /&gt;
onWake() - is invoked when the control is awakened and becomes visible on the screen&lt;br /&gt;
&lt;br /&gt;
onSleep() - is invoked for windows when a dialog window is removed from the screen&lt;br /&gt;
&lt;br /&gt;
onMove(newx,newy) - is invoked when the control is moved&lt;br /&gt;
&lt;br /&gt;
onResize(newwidth,newheight) - is invoked when the control is resized&lt;br /&gt;
&lt;br /&gt;
onAction() - is invoked when a button control is pressed, you press the enter-key in a text edit control, or move a slider control, &lt;br /&gt;
&lt;br /&gt;
onDialogPush() - is invoked when a dialog control is placed on the screen (using pushDialog(control))&lt;br /&gt;
&lt;br /&gt;
onDialogPop() - is invoked when a dialog control is removed from the screen again (using popDialog())&lt;br /&gt;
&lt;br /&gt;
onKeyDown(keycode,keystring,scancode) - a key has been pressed while the control had the input focus (makeFirstResponder())&lt;br /&gt;
&lt;br /&gt;
onKeyUp(keycode,keystring,scancode) - the key has been released&lt;br /&gt;
&lt;br /&gt;
onMouseYawPitch(xaxis,yaxis) - mouse event in Graal3D when the mouse has been turned off&lt;br /&gt;
&lt;br /&gt;
onMouseDown(keymodifier,mousescreenx,mousescreeny,clickcount) - the left mouse button has been pressed inside this control&lt;br /&gt;
&lt;br /&gt;
onMouseUp(keymodifier,mousescreenx,mousescreeny) - the left mouse button has been released&lt;br /&gt;
&lt;br /&gt;
onMouseEnter(keymodifier,mousescreenx,mousescreeny) - the mouse moved inside this control&lt;br /&gt;
&lt;br /&gt;
onMouseLeave(keymodifier,mousescreenx,mousescreeny) - the mouse left the control&lt;br /&gt;
&lt;br /&gt;
onMouseDragged(keymodifier,mousescreenx,mousescreeny) - the mouse is moved while the left mouse button is pressed&lt;br /&gt;
&lt;br /&gt;
onMouseMove(keymodifier,mousescreenx,mousescreeny) - the mouse has been moved&lt;br /&gt;
&lt;br /&gt;
onRightMouseDown(keymodifier,mousescreenx,mousescreeny,clickcount) - the right mouse button has been pressed&lt;br /&gt;
&lt;br /&gt;
onRightMouseUp(keymodifier,mousescreenx,mousescreeny) - the right mouse button has been released&lt;br /&gt;
&lt;br /&gt;
onRightMouseDragged(keymodifier,mousescreenx,mousescreeny) - the mouse has been moved while the right mouse button is pressed&lt;br /&gt;
&lt;br /&gt;
onMouseWheelUp(keymodifier) - the mouse wheel has been scrolled up&lt;br /&gt;
&lt;br /&gt;
onMouseWheelDown(keymodifier) - the mouse wheel has been scrolled down&lt;br /&gt;
&lt;br /&gt;
=Example=&lt;br /&gt;
&lt;br /&gt;
  new GuiControl(&amp;quot;Test_Back&amp;quot;) {&lt;br /&gt;
    useownprofile = true;&lt;br /&gt;
    profile.border = 3;&lt;br /&gt;
    x = 10;&lt;br /&gt;
    y = 10;&lt;br /&gt;
    width = 160;&lt;br /&gt;
    height = 80;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{:Creation/Dev/Script/Client}}&lt;/div&gt;</summary>
		<author><name>Fowlplay4</name></author>
	</entry>
	<entry>
		<id>https://graalonline.net/index.php?title=Creation/Dev/Script/Clientside_Functions&amp;diff=18125</id>
		<title>Creation/Dev/Script/Clientside Functions</title>
		<link rel="alternate" type="text/html" href="https://graalonline.net/index.php?title=Creation/Dev/Script/Clientside_Functions&amp;diff=18125"/>
		<updated>2011-04-09T19:35:12Z</updated>

		<summary type="html">&lt;p&gt;Fowlplay4: /* Functions */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Scripting Reference]]&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;2&amp;quot; width=&amp;quot;50%&amp;quot;&lt;br /&gt;
|[R]&lt;br /&gt;
| denotes it is read-only.&lt;br /&gt;
|-&lt;br /&gt;
|[3D]&lt;br /&gt;
| denotes it is a Graal3D function.&lt;br /&gt;
|-&lt;br /&gt;
|[opengl]&lt;br /&gt;
| denotes it is functional only in opengl mode.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Variables==&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;2&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
| '''Variable'''&lt;br /&gt;
|width=&amp;quot;100px&amp;quot;|'''Type'''&lt;br /&gt;
| '''Notes'''&lt;br /&gt;
|-&lt;br /&gt;
| allfeatures&lt;br /&gt;
| ''integer [R]''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| allplayerscount&lt;br /&gt;
| ''integer [R]''&lt;br /&gt;
| Returns the count of all players on your playerlist, including IRC bots.&lt;br /&gt;
|-&lt;br /&gt;
| allrenderobjecttypes&lt;br /&gt;
| ''integer [R]''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| allstats &lt;br /&gt;
| ''integer [R]''&lt;br /&gt;
| Used with showstats() in order to show all stats.&lt;br /&gt;
|-&lt;br /&gt;
| canspin&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| Returns true of false if the player has spin attack.&lt;br /&gt;
|-&lt;br /&gt;
| carriesblackstone&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| Returns whether the player is carrying a black stone.&lt;br /&gt;
|-&lt;br /&gt;
| carriesbush&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| Returns whether the player is carrying a bush.&lt;br /&gt;
|-&lt;br /&gt;
| carriesnpc&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| Returns whether the player is carrying an NPC&lt;br /&gt;
|-&lt;br /&gt;
| carriessign&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| Returns whether the player is carrying a sign.&lt;br /&gt;
|-&lt;br /&gt;
| carriesstone&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| Returns whether the player is carrying a stone.&lt;br /&gt;
|-&lt;br /&gt;
| carriesvase&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| Returns whether the player is carrying a vase.&lt;br /&gt;
|-&lt;br /&gt;
| downloadfile&lt;br /&gt;
| ''string [R]''&lt;br /&gt;
| Returns the currently downloaded file.&lt;br /&gt;
|-&lt;br /&gt;
| downloadpos&lt;br /&gt;
| ''integer [R]''&lt;br /&gt;
| Returns the position of the currently downloaded file.&lt;br /&gt;
|-&lt;br /&gt;
| downloadsize&lt;br /&gt;
| ''integer [R]''&lt;br /&gt;
| Returns the size of the currently downloaded file.&lt;br /&gt;
|-&lt;br /&gt;
| editingmission&lt;br /&gt;
| ''boolean''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| emoticonchar&lt;br /&gt;
| ''string [R]''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| focusx&lt;br /&gt;
| ''float [R]''&lt;br /&gt;
| Position of the camera in tile units.&lt;br /&gt;
|-&lt;br /&gt;
| focusy&lt;br /&gt;
| ''float [R]''&lt;br /&gt;
| Position of the camera in tile units.&lt;br /&gt;
|-&lt;br /&gt;
| ghostsnear&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| If a ghost(observer) is in the same level as the player.&lt;br /&gt;
|-&lt;br /&gt;
| graalplugincookie&lt;br /&gt;
| ''string [R]''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| graalversion&lt;br /&gt;
| ''float [R]''&lt;br /&gt;
| Version of Graal the player is using.&lt;br /&gt;
|-&lt;br /&gt;
| gravity&lt;br /&gt;
| ''float''&lt;br /&gt;
| The gravity value that effects how fast projectiles fall. It universally effects all projectiles.&lt;br /&gt;
|-&lt;br /&gt;
| installedlanguages&lt;br /&gt;
| ''string [R]''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| isapplicationactive&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| Is Graal window active?&lt;br /&gt;
|-&lt;br /&gt;
| iscarrying&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| Returns true of false if the player is carrying something.&lt;br /&gt;
|-&lt;br /&gt;
| isfocused&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| isgraal3d&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| isgraalplugin&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| isleader&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| Player was the first to enter the level.&lt;br /&gt;
|-&lt;br /&gt;
| isonmap&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| Player is on a map.&lt;br /&gt;
|-&lt;br /&gt;
| isopengl&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| Graal is in opengl mode.&lt;br /&gt;
|-&lt;br /&gt;
| isrecordingvideo&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| Player is currently recording(alt+6) Graal.&lt;br /&gt;
|-&lt;br /&gt;
| jpegquality&lt;br /&gt;
| ''integer''&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| isgraalplugin&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| lastdownloadfile&lt;br /&gt;
| ''string [R]''&lt;br /&gt;
| The last file downloaded.&lt;br /&gt;
|-&lt;br /&gt;
| leftmousebutton&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| If the left mouse button is pressed.&lt;br /&gt;
|-&lt;br /&gt;
| leftmousebuttonglobal&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| If the left mouse button is pressed. Returns whether mouse is in focus of GUIs or not.&lt;br /&gt;
|-&lt;br /&gt;
| levelorgx&lt;br /&gt;
| ''float [R]''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| levelorgy&lt;br /&gt;
| ''float [R]''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| lighteffectsenabled&lt;br /&gt;
| ''boolean''&lt;br /&gt;
| Whether the player has their lights enabled via options.&lt;br /&gt;
|-&lt;br /&gt;
| middlemousebutton&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| If the middle mouse button is pressed&lt;br /&gt;
|-&lt;br /&gt;
| middlemousebuttonglobal&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| If the middle mouse button is pressed. Returns whether mouse is in focus of GUIs or not.&lt;br /&gt;
|-&lt;br /&gt;
| mousebuttons &lt;br /&gt;
| ''integer [R]''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| mousebuttonsglobal&lt;br /&gt;
| ''integer [R]''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| mousepitch&lt;br /&gt;
| ''float [R] [3D]''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| mousescreenx &lt;br /&gt;
| ''integer''&lt;br /&gt;
| Position of the mouse in the Graal screen, in pixel units on the x-axis.&lt;br /&gt;
|-&lt;br /&gt;
| mousescreeny &lt;br /&gt;
| ''integer''&lt;br /&gt;
| Position of the mouse in the Graal screen, in pixel units on the y-axis.&lt;br /&gt;
|-&lt;br /&gt;
| mousewheeldelta&lt;br /&gt;
| ''integer [R]''&lt;br /&gt;
| How much the mouse wheel has been scrolled.&lt;br /&gt;
|-&lt;br /&gt;
| mousex&lt;br /&gt;
| ''float''&lt;br /&gt;
| Position of the mouse in the level, in tile units, on the x-axis.&lt;br /&gt;
|-&lt;br /&gt;
| mousey&lt;br /&gt;
| ''float''&lt;br /&gt;
| Position of the mouse in the level, in tile units, on the y-axis&lt;br /&gt;
|-&lt;br /&gt;
| mouseyaw&lt;br /&gt;
| ''float [R] [3D]''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| musiclen &lt;br /&gt;
| ''integer [R]''&lt;br /&gt;
| Length of current playing '''MP3'''&lt;br /&gt;
|-&lt;br /&gt;
| musicpos&lt;br /&gt;
| ''integer [R]''&lt;br /&gt;
| Position of current playing '''MP3'''&lt;br /&gt;
|-&lt;br /&gt;
| particleeffectsenabled&lt;br /&gt;
| ''boolean''&lt;br /&gt;
| If player has particles enabled in their options.&lt;br /&gt;
|-&lt;br /&gt;
| rightmousebutton &lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| If the right mouse button is pressed&lt;br /&gt;
|-&lt;br /&gt;
| rightmousebuttonglobal &lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| If the right mouse button is pressed. Returns whether mouse is in focus of GUIs or not.&lt;br /&gt;
|-&lt;br /&gt;
| screenheight&lt;br /&gt;
| ''integer [R]''&lt;br /&gt;
| Height of the Graal screen in pixel units.&lt;br /&gt;
|-&lt;br /&gt;
| screenwidth&lt;br /&gt;
| ''integer [R]''&lt;br /&gt;
| Width of the Graal screen in pixel units.&lt;br /&gt;
|-&lt;br /&gt;
| scriptedcontrols &lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| scriptedplayerlist&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| Whether the player has the scripted playerlist enabled.&lt;br /&gt;
|-&lt;br /&gt;
| scriptlogwritetoreadonly&lt;br /&gt;
| ''boolean''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| selectedlistplayers&lt;br /&gt;
| ''object''&lt;br /&gt;
| An object of all players selected on the playerlist.&lt;br /&gt;
|-&lt;br /&gt;
| selectedsword &lt;br /&gt;
| ''integer''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| selectedweapon &lt;br /&gt;
| ''integer''&lt;br /&gt;
| Index of the currently selected weapon.&lt;br /&gt;
|-&lt;br /&gt;
| servername&lt;br /&gt;
| ''string [R]''&lt;br /&gt;
| Name of the server.&lt;br /&gt;
|-&lt;br /&gt;
| serverstartconnect &lt;br /&gt;
| ''string''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| serverstartparams &lt;br /&gt;
| ''string''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| shotbybaddy&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| If the player is shot by a baddy(default) arrow.&lt;br /&gt;
|-&lt;br /&gt;
| shotbyplayer&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| If the player is shot by another players arrow.&lt;br /&gt;
|-&lt;br /&gt;
| showterraingrid&lt;br /&gt;
| ''boolean''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| spritesimage&lt;br /&gt;
| ''string''&lt;br /&gt;
| Filename of the currently set sprite image.&lt;br /&gt;
|-&lt;br /&gt;
| statusimage&lt;br /&gt;
| ''string''&lt;br /&gt;
| Filename of the currently set state image.&lt;br /&gt;
|-&lt;br /&gt;
| timevar&lt;br /&gt;
| ''integer [R].''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| timevar2&lt;br /&gt;
| ''float [R]''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| timevar3&lt;br /&gt;
| ''float [R] [3D]''&lt;br /&gt;
| Synchronized time which works on both server and client-side, precision is milliseconds.&lt;br /&gt;
|-&lt;br /&gt;
| wasshooted&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| If the player is shot by a default arrow.&lt;br /&gt;
|-&lt;br /&gt;
| waterheight&lt;br /&gt;
| ''float''&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| weapons&lt;br /&gt;
| ''object [R]''&lt;br /&gt;
| all the players weapons, this includes login inherited weapons.&lt;br /&gt;
|-&lt;br /&gt;
| weaponsenabled&lt;br /&gt;
| ''boolean''&lt;br /&gt;
| If the players weapons are enabled via disableweapons()/enableweapons().&lt;br /&gt;
|-&lt;br /&gt;
| weathereffectsenabled&lt;br /&gt;
| ''boolean''&lt;br /&gt;
| If weather is enabled in the players options.&lt;br /&gt;
|-&lt;br /&gt;
| worldclockstopped&lt;br /&gt;
| ''boolean''&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| worldhour &lt;br /&gt;
| ''integer''&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| worldminute &lt;br /&gt;
| ''float''&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| worldminutesofday &lt;br /&gt;
| ''float''&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| worldrealsecondsperday &lt;br /&gt;
| ''float''&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Functions=&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;2&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
| '''Function'''&lt;br /&gt;
|width=&amp;quot;100px&amp;quot;|'''Type'''&lt;br /&gt;
| '''Notes'''&lt;br /&gt;
|-&lt;br /&gt;
| addcontrol(object)&lt;br /&gt;
|&lt;br /&gt;
| adds 'object' to the parent control.&lt;br /&gt;
|-&lt;br /&gt;
| addmaterialmapping(string, string)&lt;br /&gt;
| [3D]&lt;br /&gt;
| returns boolean.&lt;br /&gt;
|-&lt;br /&gt;
| addtiledef(string image, string prefix, int format)&lt;br /&gt;
| &lt;br /&gt;
| Adds a tileset definition with the supplied tileset image, level prefix and tileset format (0=pics1, 1=new world, 5=terrain).&lt;br /&gt;
|-&lt;br /&gt;
| addtiledef2(string image, string prefix, int x, int y)&lt;br /&gt;
| &lt;br /&gt;
| Overlays an image on the tileset with the supplied tileset image and level prefix. Parameters 'x' and 'y' represent the x and y position on the tileset of where to place the new image.&lt;br /&gt;
|-&lt;br /&gt;
| aindexof(float, array)&lt;br /&gt;
| &lt;br /&gt;
| Returns integer - the position of 'float' in the array.&lt;br /&gt;
|-&lt;br /&gt;
| arccos(float)&lt;br /&gt;
| &lt;br /&gt;
| Returns float - the arc cosine of 'float'.&lt;br /&gt;
|-&lt;br /&gt;
| arcsin(float)&lt;br /&gt;
| &lt;br /&gt;
| Returns float - the arc sine of 'float'.&lt;br /&gt;
|-&lt;br /&gt;
| attachplayertoobj(integer1, integer2)&lt;br /&gt;
| &lt;br /&gt;
| Attaches the player to the object with the matching ID where integer1 is the object type (currently only NPCs - 0) and integer2 is the ID of the desired object.&lt;br /&gt;
|-&lt;br /&gt;
| base64decode(string)&lt;br /&gt;
| &lt;br /&gt;
| Returns string - Decodes a base64 string.&lt;br /&gt;
|-&lt;br /&gt;
| base64encode(string)&lt;br /&gt;
| &lt;br /&gt;
| Returns string - Encodes string in to several characters of a 64 printable character set (A-Z, a-z, 0-9, + and /, while &amp;quot;=&amp;quot; is a special suffix code)&lt;br /&gt;
|-&lt;br /&gt;
| boxcontains(string, string)&lt;br /&gt;
| &lt;br /&gt;
| returns boolean.&lt;br /&gt;
|-&lt;br /&gt;
| boxcontainsvector(string, string)&lt;br /&gt;
| &lt;br /&gt;
| returns boolean&lt;br /&gt;
|-&lt;br /&gt;
| boxintersect(string, string)&lt;br /&gt;
| &lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| boxoverlaps(string, string)&lt;br /&gt;
| &lt;br /&gt;
| returns boolean&lt;br /&gt;
|-&lt;br /&gt;
| boxscale(string, string)&lt;br /&gt;
| &lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| callnpc(int index, string function)&lt;br /&gt;
| &lt;br /&gt;
| Calls a function from an NPC where 'index' is the NPC's index and 'function' is the function name.&lt;br /&gt;
|-&lt;br /&gt;
| callweapon(int index, string function)&lt;br /&gt;
| &lt;br /&gt;
| Calls a function from a weapon where 'index' is the weapon's index and 'function' is the function name.&lt;br /&gt;
|-&lt;br /&gt;
| castray({x,y,x}, {x,y,z}, string type)&lt;br /&gt;
| [3D]&lt;br /&gt;
| returns object - specify the start and end of the ray, and the object types (e.g. &amp;quot;staticts,terrain,interior&amp;quot;)&lt;br /&gt;
|-&lt;br /&gt;
| checksum(string)&lt;br /&gt;
| &lt;br /&gt;
| returns float&lt;br /&gt;
|-&lt;br /&gt;
| contains(string2, string1)&lt;br /&gt;
| &lt;br /&gt;
| returns boolean - True if string1 is contained within string2.&lt;br /&gt;
|-&lt;br /&gt;
| copystrings(string, string)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| cursoroff()&lt;br /&gt;
| [opengl]&lt;br /&gt;
| Disables the visible mouse cursor.&lt;br /&gt;
|-&lt;br /&gt;
| cursoron()&lt;br /&gt;
| [opengl]&lt;br /&gt;
| Enables the visible mouse cursor.&lt;br /&gt;
|-&lt;br /&gt;
| degtorad(float)&lt;br /&gt;
| &lt;br /&gt;
| returns float - Converts angle measurements of degrees to radians&lt;br /&gt;
|-&lt;br /&gt;
| detachplayer()&lt;br /&gt;
| &lt;br /&gt;
| Detaches a player from an attached object.&lt;br /&gt;
|-&lt;br /&gt;
| disabledefmovement()&lt;br /&gt;
| &lt;br /&gt;
| Disables the default movement system and controls(including weapons, sword, grab. Does not include Q-menu, pause, map...).&lt;br /&gt;
|-&lt;br /&gt;
| disablemap()&lt;br /&gt;
| &lt;br /&gt;
| Disables the default map (M).&lt;br /&gt;
|-&lt;br /&gt;
| disablepause()&lt;br /&gt;
| &lt;br /&gt;
| Disables the default pause (P).&lt;br /&gt;
|-&lt;br /&gt;
| disableselectweapons()&lt;br /&gt;
| &lt;br /&gt;
| Disables the default Q-menu (Q).&lt;br /&gt;
|-&lt;br /&gt;
| disableweapons()&lt;br /&gt;
| &lt;br /&gt;
| Disables the default sword (S) and weapons (D).&lt;br /&gt;
|-&lt;br /&gt;
| echo(string)&lt;br /&gt;
| &lt;br /&gt;
| echos 'string' to the debug window(F2).&lt;br /&gt;
|-&lt;br /&gt;
| enabledefmovement()&lt;br /&gt;
| &lt;br /&gt;
| Enables the default movement system.&lt;br /&gt;
|-&lt;br /&gt;
| [[Creation/Dev/Script/Functions/enablefeatures(int)|enablefeatures(int)]]&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| enablemap()&lt;br /&gt;
| &lt;br /&gt;
| Enables the default map system(M).&lt;br /&gt;
|-&lt;br /&gt;
| enablepause()&lt;br /&gt;
| &lt;br /&gt;
| Enables the default pause system(P).&lt;br /&gt;
|-&lt;br /&gt;
| enableselectweapons()&lt;br /&gt;
| &lt;br /&gt;
| Enables the default Q-menu(Q).&lt;br /&gt;
|-&lt;br /&gt;
| enableweapons()&lt;br /&gt;
| &lt;br /&gt;
| Enables the default sword(S) and weapons(D).&lt;br /&gt;
|-&lt;br /&gt;
| escapestring(string)&lt;br /&gt;
| &lt;br /&gt;
| returns string - adds \\ in front of &amp;quot;, ' and \\, and removes non-printable characters&lt;br /&gt;
|-&lt;br /&gt;
| explodebomb(integer)&lt;br /&gt;
| &lt;br /&gt;
| explodes the bomb with the id of 'integer'.&lt;br /&gt;
|-&lt;br /&gt;
| extractfilebase(string)&lt;br /&gt;
| &lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| extractfileext(string)&lt;br /&gt;
| &lt;br /&gt;
| Takes in a file name, and returns its extension. &lt;br /&gt;
|-&lt;br /&gt;
| extractfilepath(string)&lt;br /&gt;
| &lt;br /&gt;
| returns string &lt;br /&gt;
|-&lt;br /&gt;
| fileexists(string)&lt;br /&gt;
| &lt;br /&gt;
| returns boolean of whether the file 'str' exists in the players Graal/ directory(does not search subfolders).&lt;br /&gt;
|-&lt;br /&gt;
| filesize(string)&lt;br /&gt;
| &lt;br /&gt;
| Returns the size(int) of the file 'string' in the players Graal/ directory(does not search subfolders).&lt;br /&gt;
|-&lt;br /&gt;
| fileupdate(string)&lt;br /&gt;
| &lt;br /&gt;
| returns boolean&lt;br /&gt;
|-&lt;br /&gt;
| findani(string)&lt;br /&gt;
| &lt;br /&gt;
| returns object&lt;br /&gt;
|-&lt;br /&gt;
| findfiles(string, integer)&lt;br /&gt;
| &lt;br /&gt;
| returns object&lt;br /&gt;
|-&lt;br /&gt;
| findlevel(string)&lt;br /&gt;
| &lt;br /&gt;
| returns object&lt;br /&gt;
|-&lt;br /&gt;
| findnearestplayer(float1, float2)&lt;br /&gt;
| &lt;br /&gt;
| Returns the closest player's object relevant to float1 and float2.&lt;br /&gt;
|-&lt;br /&gt;
| findnearestplayers(float, float)&lt;br /&gt;
| &lt;br /&gt;
| Returns the closest players' object relevant to float1 and float2.&lt;br /&gt;
|-&lt;br /&gt;
| findnpcbyid(integer)&lt;br /&gt;
|&lt;br /&gt;
| Returns the NPC object with the ID of 'int'.&lt;br /&gt;
|-&lt;br /&gt;
| findpathinarray(obj1, obj2, obj3, obj4, obj5, int, int, int)&lt;br /&gt;
|&lt;br /&gt;
| Returns object - Simple path-finding: Obj1 being tiles that allow walking, Obj2 being tiles that don't allow walking, Obj3; tiles that shouldn't be allowed to walked on, Obj4; tiles that are able to be walked on, Obj5; tiles where we may stop. Integers are relevant to the startx, starty and maximum path length. - Arrays for allowed/non-allowed tiles are only checked if they aren't null.&lt;br /&gt;
|-&lt;br /&gt;
| findplayer(string)&lt;br /&gt;
|&lt;br /&gt;
| Returns the player object with the account equal to string.&lt;br /&gt;
|-&lt;br /&gt;
| findplayerbycommunityname(string)&lt;br /&gt;
|&lt;br /&gt;
| Returns the player object with the community name equal to string.&lt;br /&gt;
|-&lt;br /&gt;
| findplayerbyid(integer)&lt;br /&gt;
|&lt;br /&gt;
| Returns the player object with the ID equal to integer.&lt;br /&gt;
|-&lt;br /&gt;
| findweapon(string)&lt;br /&gt;
|&lt;br /&gt;
| Returns the weapon object with the name equal to string.&lt;br /&gt;
|-&lt;br /&gt;
| format(string, string, ...)&lt;br /&gt;
|&lt;br /&gt;
| See [[Creation/Dev/Output_Methods#format.28.29_function|format()]]. &lt;br /&gt;
|- &lt;br /&gt;
| format2(string, array)&lt;br /&gt;
| &lt;br /&gt;
| Like format(), except that this expects the format string and an array of variables instead of passing the variables as separate parameters.&lt;br /&gt;
|-&lt;br /&gt;
| freefileresources(string)&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| freezeplayer(float)&lt;br /&gt;
|&lt;br /&gt;
| Freezes the player for the number of seconds specified by float.&lt;br /&gt;
|-&lt;br /&gt;
| get3dobjectat(float, float, boolean)&lt;br /&gt;
| [3D]&lt;br /&gt;
| Gets the 3d object at the specified screen position, third parameter true if it should do box collision.&lt;br /&gt;
|-&lt;br /&gt;
| get3dobjectatmouse(boolean)&lt;br /&gt;
| [3D]&lt;br /&gt;
| Gets the 3d object at the mouse.  Parameter true if it should do box collision.&lt;br /&gt;
|-&lt;br /&gt;
| get3dobjectbyray(string, string)&lt;br /&gt;
| [3D]&lt;br /&gt;
| returns object&lt;br /&gt;
|-&lt;br /&gt;
| get3dobjectsbybox(string, string)&lt;br /&gt;
| [3D]&lt;br /&gt;
| 1st parameter defines the box {minx,miny,minz, maxx,maxy,maxz}.  Second parameter specifies the type of object to find (e.g. &amp;quot;staticts,terrain,interior&amp;quot;)&lt;br /&gt;
|-&lt;br /&gt;
| get3dscreenposition(string, boolean)&lt;br /&gt;
| [3D]&lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| getanglesfromvector({x, y, z})&lt;br /&gt;
|&lt;br /&gt;
| Returns an array that contains the angles the 3D vector {x, y, z} makes with the X-Y and X-Z axes.&lt;br /&gt;
|-&lt;br /&gt;
| getascii(string)&lt;br /&gt;
|&lt;br /&gt;
| Returns the [http://www.asciitable.com/ ascii] code for string.&lt;br /&gt;
|-&lt;br /&gt;
| getbasepackage()&lt;br /&gt;
|&lt;br /&gt;
| returns object&lt;br /&gt;
|-&lt;br /&gt;
| getboxcenter(string)&lt;br /&gt;
|&lt;br /&gt;
| Returns an array containing the center of a 3D box specified by string ({x0,y0,z0,x1,y1,z1,...}).&lt;br /&gt;
|-&lt;br /&gt;
| getdesktopresolution()&lt;br /&gt;
|&lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| getdisplaydevicelist()&lt;br /&gt;
|&lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| getdownloadedupdatepackagesize()&lt;br /&gt;
|&lt;br /&gt;
| Returns the size of the downloaded update package.&lt;br /&gt;
|-&lt;br /&gt;
| getdownloadingpackage()&lt;br /&gt;
|&lt;br /&gt;
| Returns a reference to current update package being downloaded.&lt;br /&gt;
|-&lt;br /&gt;
| getdownloadingpackagescount()&lt;br /&gt;
|&lt;br /&gt;
| Returns a count of the number of update packages to download.&lt;br /&gt;
|-&lt;br /&gt;
| getdropz(string)&lt;br /&gt;
|&lt;br /&gt;
| returns float&lt;br /&gt;
|-&lt;br /&gt;
| getExtension(string)&lt;br /&gt;
|&lt;br /&gt;
| This function is the same as extractFileExt().  Takes in a file name, and returns its extension.&lt;br /&gt;
|-&lt;br /&gt;
| getfilemodtime(string)&lt;br /&gt;
|&lt;br /&gt;
| Returns a timestamp of when the file was last modified (in unix time compatible to timevar2). This function accepts both exact file path and plain file name.&lt;br /&gt;
|-&lt;br /&gt;
| gethttprequest(string, integer, string)&lt;br /&gt;
| &lt;br /&gt;
| returns object (This function is the same as requestHttp())&lt;br /&gt;
|-&lt;br /&gt;
| getimgheight(string)&lt;br /&gt;
|&lt;br /&gt;
| Returns the height (in pixels) of the filename indicated by string.&lt;br /&gt;
|-&lt;br /&gt;
| getimgpixel(string, integer, integer)&lt;br /&gt;
|&lt;br /&gt;
| returns object&lt;br /&gt;
|-&lt;br /&gt;
| getimgwidth(string)&lt;br /&gt;
|&lt;br /&gt;
| Returns the width(in pixels) of the filename indicated by string.&lt;br /&gt;
|-&lt;br /&gt;
| getkeycode(string)&lt;br /&gt;
|&lt;br /&gt;
| Returns the keycode of the key indicated by string.  The keycode returned can be used in keydown2().&lt;br /&gt;
|-&lt;br /&gt;
| getloginaccountname()&lt;br /&gt;
|&lt;br /&gt;
| Presumably used for the login server.  Use player.account instead.&lt;br /&gt;
|-&lt;br /&gt;
| getmapx(string)&lt;br /&gt;
| &lt;br /&gt;
| Gets the x coordinate location in the gmap of the level indicated by string.  The top-left level starts at (0, 0).&lt;br /&gt;
|-&lt;br /&gt;
| getmapy(string)&lt;br /&gt;
|&lt;br /&gt;
| Gets the y coordinate location in the gmap of the level indicated by string.  The top-left level starts at (0, 0).&lt;br /&gt;
|-&lt;br /&gt;
| getmusicfilename()&lt;br /&gt;
|&lt;br /&gt;
| Returns the filename of the music currently playing.&lt;br /&gt;
|-&lt;br /&gt;
| getmusicstatus()&lt;br /&gt;
|&lt;br /&gt;
| Returns the status of the music currently playing.&lt;br /&gt;
|-&lt;br /&gt;
| getmusictags()&lt;br /&gt;
|&lt;br /&gt;
| Returns the tags of the music currently playing.  This function can be used to retrieve the title and artist info of the music.&lt;br /&gt;
|-&lt;br /&gt;
| getnearestplayer(float, float)&lt;br /&gt;
|&lt;br /&gt;
| Deprecated.  Use findnearestplayer() instead.&lt;br /&gt;
|-&lt;br /&gt;
| getnearestplayers(float, float)&lt;br /&gt;
|&lt;br /&gt;
| Deprecated.  Use findnearestplayers() instead.&lt;br /&gt;
|-&lt;br /&gt;
| getpackagesdownloadcomplete()&lt;br /&gt;
|&lt;br /&gt;
| Returns 'true' if the package downloads are complete.&lt;br /&gt;
|-&lt;br /&gt;
| getpackagesdownloaded()&lt;br /&gt;
|&lt;br /&gt;
| Returns 'true' if the most recent packages are already downloaded.&lt;br /&gt;
|-&lt;br /&gt;
| getplatform()&lt;br /&gt;
|&lt;br /&gt;
| Returns the platform that the player is using.  (i.e. windows, mac, or linux)&lt;br /&gt;
|-&lt;br /&gt;
| getresolutionlist(string)&lt;br /&gt;
|&lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| getservername()&lt;br /&gt;
|&lt;br /&gt;
| Returns the name of the server the player is currently connected to.&lt;br /&gt;
|-&lt;br /&gt;
| getstringkeys(string)&lt;br /&gt;
|&lt;br /&gt;
| Returns an array of the variables that begins with the supplied string.&lt;br /&gt;
|-&lt;br /&gt;
| getterraintexture(float, float)&lt;br /&gt;
|&lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| getterraintextureindex(float, float)&lt;br /&gt;
|&lt;br /&gt;
| returns integer&lt;br /&gt;
|-&lt;br /&gt;
| gettextheight(float zoom, string style, string font)&lt;br /&gt;
|&lt;br /&gt;
| returns integer - The height in pixels of the text with the given zoom, style and font.&lt;br /&gt;
|-&lt;br /&gt;
| gettextwidth(float zoom, string style, string font, string text)&lt;br /&gt;
|&lt;br /&gt;
| returns integer - The width of the text with the given zoom, style, font and text.&lt;br /&gt;
|-&lt;br /&gt;
| gettileset()&lt;br /&gt;
|&lt;br /&gt;
| returns string - the current main tileset (pics1.png, picso.png etc.)&lt;br /&gt;
|-&lt;br /&gt;
| gettilesettype()&lt;br /&gt;
|&lt;br /&gt;
| returns integer - the current tileset type (pics1.png:0, picso.png:5 etc.)&lt;br /&gt;
|-&lt;br /&gt;
| gettotalupdatepackagesize()&lt;br /&gt;
|&lt;br /&gt;
| returns integer - The total size of the update packages.&lt;br /&gt;
|-&lt;br /&gt;
| getupdatepackage(string name)&lt;br /&gt;
|&lt;br /&gt;
| returns object - A reference to the update package with the given name.&lt;br /&gt;
|-&lt;br /&gt;
| getvectorfromangles(float, float)&lt;br /&gt;
|&lt;br /&gt;
| returns string&lt;br /&gt;
|- &lt;br /&gt;
| getz(float, float)&lt;br /&gt;
|&lt;br /&gt;
| returns float&lt;br /&gt;
|-&lt;br /&gt;
| graalcontrolhasfocus(bool)&lt;br /&gt;
|&lt;br /&gt;
| returns boolean - Whether or not the graal control has focus.  Parameter says if it should also check if the chat bar has the focus&lt;br /&gt;
|-&lt;br /&gt;
| hideplayer(float time)&lt;br /&gt;
|&lt;br /&gt;
| Hides player for the specified amount of time.&lt;br /&gt;
|-&lt;br /&gt;
| hidesword(float time)&lt;br /&gt;
|&lt;br /&gt;
| Hides the player's sword for the specified amount of time.&lt;br /&gt;
|-&lt;br /&gt;
| hitnpc(int index, float halfhearts, float fromx, float fromy)&lt;br /&gt;
|&lt;br /&gt;
| Hit's npc with specified index causing the specified amount of halfhearts in damage. It also knocks back the npc based on the from X and Y coordinate passed to it.&lt;br /&gt;
|-&lt;br /&gt;
| hitobjects(float power, float x, float y)&lt;br /&gt;
|&lt;br /&gt;
| Hurts all the npcs with the specified power on the position passed to it.&lt;br /&gt;
|-&lt;br /&gt;
| hitplayer(int index, float halfhearts, float fromx, float fromy)&lt;br /&gt;
|&lt;br /&gt;
| Hit's player with specified index causing the specified amount of halfhearts in damage. It also knocks back the player based on the from X and Y coordinate passed to it. Use 0 as the index to hit your own player.&lt;br /&gt;
|-&lt;br /&gt;
| isadminguild(str guildname)&lt;br /&gt;
| &lt;br /&gt;
| returns boolean - If the passed guildname is an admin guild or not.&lt;br /&gt;
|-&lt;br /&gt;
| isclassloaded(str classname)&lt;br /&gt;
|&lt;br /&gt;
| returns boolean - If the passed classname is loaded for the client.&lt;br /&gt;
|-&lt;br /&gt;
| iscursoron()&lt;br /&gt;
|&lt;br /&gt;
| returns boolean - If the cursor is on or not.&lt;br /&gt;
|-&lt;br /&gt;
| isdevicefullscreenonly(str device)&lt;br /&gt;
|&lt;br /&gt;
| returns boolean - If the device is full screen only or not.&lt;br /&gt;
|-&lt;br /&gt;
| isdownloading(str filename)&lt;br /&gt;
|&lt;br /&gt;
| returns boolean - If a file is currently downloaded or requested from the server.&lt;br /&gt;
|-&lt;br /&gt;
| isdownloadingfiles()&lt;br /&gt;
|&lt;br /&gt;
| returns boolean - checks if Graal is currently downloading or requesting files from the server.&lt;br /&gt;
|-&lt;br /&gt;
| isfullscreenmode()&lt;br /&gt;
|&lt;br /&gt;
| returns boolean - checks if Graal is currently in fullscreen mode.&lt;br /&gt;
|-&lt;br /&gt;
| isimgrectangletransparent(str, int, int, int, int)&lt;br /&gt;
| &lt;br /&gt;
| returns boolean&lt;br /&gt;
|-&lt;br /&gt;
| ismusicplaying()&lt;br /&gt;
| &lt;br /&gt;
| returns boolean&lt;br /&gt;
|-&lt;br /&gt;
| isobject(str)&lt;br /&gt;
| &lt;br /&gt;
| returns boolean&lt;br /&gt;
|-&lt;br /&gt;
| issoundplaying(str)&lt;br /&gt;
| &lt;br /&gt;
| returns boolean&lt;br /&gt;
|-&lt;br /&gt;
| keydown(int)&lt;br /&gt;
| &lt;br /&gt;
| returns boolean&lt;br /&gt;
|-&lt;br /&gt;
| keydown2(int, bool)&lt;br /&gt;
| &lt;br /&gt;
| returns boolean&lt;br /&gt;
|-&lt;br /&gt;
| keydown2global(int, bool)&lt;br /&gt;
| &lt;br /&gt;
| returns boolean&lt;br /&gt;
|-&lt;br /&gt;
| keydownglobal(int)&lt;br /&gt;
| &lt;br /&gt;
| returns boolean&lt;br /&gt;
|-&lt;br /&gt;
| keyname(int)&lt;br /&gt;
| &lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| lay2(str, float, float)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| lightscene()&lt;br /&gt;
| &lt;br /&gt;
| returns boolean&lt;br /&gt;
|-&lt;br /&gt;
| loadclass(str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| loadmap(str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| loadtranslation(str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| lowercase(str)&lt;br /&gt;
| &lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| ltmfs(bool)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| ltmmax(float, float)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| ltmmin(float, float)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| makescreenshot2(str, int, float, float, float, int, int)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| matrixcreate(str, str)&lt;br /&gt;
| &lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| matrixcreatefromeuler(str)&lt;br /&gt;
| &lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| matrixmulpoint(str, str)&lt;br /&gt;
| &lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| matrixmultiply(str, str)&lt;br /&gt;
| &lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| matrixmulvector(str, str)&lt;br /&gt;
| &lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| md5(str)&lt;br /&gt;
| &lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| noplayerkilling()&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| onwall(float, float)&lt;br /&gt;
| &lt;br /&gt;
| returns boolean&lt;br /&gt;
|-&lt;br /&gt;
| onwall2(float, float, float, float)&lt;br /&gt;
| &lt;br /&gt;
| returns boolean&lt;br /&gt;
|-&lt;br /&gt;
| onwater(float, float)&lt;br /&gt;
| &lt;br /&gt;
| returns boolean&lt;br /&gt;
|-&lt;br /&gt;
| onwater2(float, float, float, float)&lt;br /&gt;
| &lt;br /&gt;
| returns boolean&lt;br /&gt;
|-&lt;br /&gt;
| opengraalurl(str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| openurl(str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| openurl2(str, int, int)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| play(str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| play2(str, float, float, float)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| play3d(str, bool, str, str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| playlooped(str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| playlooped2(str, float, float, float)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| popdialog()&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| pushdialog(obj)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| putleaps(int, float, float)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| radtodeg(float)&lt;br /&gt;
| &lt;br /&gt;
| returns float&lt;br /&gt;
|-&lt;br /&gt;
| randomstring(str)&lt;br /&gt;
| &lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| removetiledefs(str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| replaceani(str, str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| requestfiledeletion(str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| requestfilerename(str, str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| requestfilesmove(str, str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| requesthttp(str, int, str)&lt;br /&gt;
| &lt;br /&gt;
| returns object&lt;br /&gt;
|-&lt;br /&gt;
| requesttext(str, str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| requesturl(str)&lt;br /&gt;
| &lt;br /&gt;
| returns object&lt;br /&gt;
|-&lt;br /&gt;
| resetfocus()&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| rotationadd(str, str)&lt;br /&gt;
| &lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| rotationaddeuler(str, str)&lt;br /&gt;
| &lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| rotationfromeuler(str)&lt;br /&gt;
| &lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| rotationsub(str, str)&lt;br /&gt;
| &lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| rotationtoeuler(str)&lt;br /&gt;
| &lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| rungarbagecollector()&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| savelog(str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| say(int)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| say2(str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| screenx(float, float)&lt;br /&gt;
| &lt;br /&gt;
| returns integer&lt;br /&gt;
|-&lt;br /&gt;
| screeny(float, float)&lt;br /&gt;
| &lt;br /&gt;
| returns integer&lt;br /&gt;
|-&lt;br /&gt;
| selectfilefordownload(str)&lt;br /&gt;
| &lt;br /&gt;
| opens the select&lt;br /&gt;
|-&lt;br /&gt;
| selectfileforupload()&lt;br /&gt;
| &lt;br /&gt;
| opens the select&lt;br /&gt;
|-&lt;br /&gt;
| sendrpgmessage(str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| sendtext(str, str, params...)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| sendtorc(str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| serverwarp(str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| setani(str, str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| setbeltcolor(str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| setcoatcolor(str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| setcontentcontrol(obj)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| setcursor2(str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| seteffect(float, float, float, float)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| setfocus(float, float)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| setfogcolors(obj)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| setgender(str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| sethead(str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| setinteriorrendermode(int)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| setletters(str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| setmap(str, str, float, float)&lt;br /&gt;
| &lt;br /&gt;
| sets a text map (you can see the tiles of other levels but not the npcs), parameters are text file with level names, the map image (not used anymore), default x and y for the head icons; use gmaps if possible instead of this&lt;br /&gt;
|-&lt;br /&gt;
| setminimap(str, str, float, float)&lt;br /&gt;
| &lt;br /&gt;
| parameters are a text file with level names, the image, default x and y; use gmaps if possible instead of this&lt;br /&gt;
|-&lt;br /&gt;
| setmusicvolume(float, float)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| setplayerdir(str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| setshield(str, int)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| setshoecolor(str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| setshootparams(str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| setskincolor(str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| setskybandcolors(obj)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| setskybandsizes(obj)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| setsleevecolor(str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| setspritesimage(str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| setstatusimage(str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| setsuncolors(obj)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| setsword(str, int)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| setterrainrendermode(int)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| showstats(int)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| spyfire(int, int)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| startrecordvideo()&lt;br /&gt;
| &lt;br /&gt;
| returns boolean&lt;br /&gt;
|-&lt;br /&gt;
| stopmidi()&lt;br /&gt;
| &lt;br /&gt;
| same as stopmusic(), kept for compatibility&lt;br /&gt;
|-&lt;br /&gt;
| stopmusic()&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| stoprecordvideo()&lt;br /&gt;
| &lt;br /&gt;
| returns boolean&lt;br /&gt;
|-&lt;br /&gt;
| stopsound(str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| strcmp(str, str)&lt;br /&gt;
| &lt;br /&gt;
| returns integer&lt;br /&gt;
|-&lt;br /&gt;
| strequals(str, str)&lt;br /&gt;
| &lt;br /&gt;
| returns boolean&lt;br /&gt;
|-&lt;br /&gt;
| switchtoopengl()&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| synctimeofday(float, float)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| takeplayercarry()&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| takeplayerhorse()&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| testplayer(float, float)&lt;br /&gt;
| &lt;br /&gt;
| returns integer&lt;br /&gt;
|-&lt;br /&gt;
| trace(str)&lt;br /&gt;
| &lt;br /&gt;
| same as echo()&lt;br /&gt;
|-&lt;br /&gt;
| triggeraction(float, float, str, params...)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| triggerserver(str, str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| update3dterrain(float, float, float, float)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| updateboard(int, int, int, int)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| updateterrain()&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| updatevisibledistance()&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| uploadfile(str)&lt;br /&gt;
| &lt;br /&gt;
| uploads a file, you must provide the full path provided by a onDropFiles() event, also this will only work if the scripted RC has currently a file browser window open; once the file is uploaded an onFilesUploaded event will be invoked&lt;br /&gt;
|-&lt;br /&gt;
| uppercase(str)&lt;br /&gt;
| &lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| vectoradd(str, str)&lt;br /&gt;
| &lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| vectorcross(str, str)&lt;br /&gt;
| &lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| vectordist(str, str)&lt;br /&gt;
| &lt;br /&gt;
| returns float&lt;br /&gt;
|-&lt;br /&gt;
| vectordot(str, str)&lt;br /&gt;
| &lt;br /&gt;
| returns float&lt;br /&gt;
|-&lt;br /&gt;
| vectorlen(str)&lt;br /&gt;
| &lt;br /&gt;
| returns float&lt;br /&gt;
|-&lt;br /&gt;
| vectornormalize(str)&lt;br /&gt;
| &lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| vectororthobasis(str)&lt;br /&gt;
| &lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| vectorscale(str, float)&lt;br /&gt;
| &lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| vectorsub(str, str)&lt;br /&gt;
| &lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| worldx(float, float)&lt;br /&gt;
| &lt;br /&gt;
| returns float&lt;br /&gt;
|-&lt;br /&gt;
| worldy(float, float)&lt;br /&gt;
| &lt;br /&gt;
| returns float&lt;br /&gt;
|-&lt;br /&gt;
| wraptext(int, str, str)&lt;br /&gt;
| &lt;br /&gt;
| returns object&lt;br /&gt;
|-&lt;br /&gt;
| wraptext2(int, float, str, str)&lt;br /&gt;
| &lt;br /&gt;
| returns object&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Objects=&lt;br /&gt;
&amp;lt;pre&amp;gt;TGraalVar:&lt;br /&gt;
  initialized - boolean [R]&lt;br /&gt;
  ispaused - boolean - suspends the script if set to paused&lt;br /&gt;
  joinedclasses - object&lt;br /&gt;
  maxlooplimit - integer - sets the maxmimum number of loop iterations, default 10000; the allowed range for this can vary from server to server&lt;br /&gt;
  name - string&lt;br /&gt;
  scripterrors - object [R] - gives the list of script errors which were reported for this object&lt;br /&gt;
  scriptlogmissingfunctions - boolean&lt;br /&gt;
  timeout - float&lt;br /&gt;
  addarray(obj) - adds another array to this variable&lt;br /&gt;
  addarraymember(str) - returns object - adds an array member with a name and returns the new array member&lt;br /&gt;
  addnamedstring(str, str) - returns object&lt;br /&gt;
  cancelevents(str) - removes all previously scheduled events (scheduleevent) of the specified event name&lt;br /&gt;
  catchevent(str, str, str) - adds an event handler for the specified object and event, third parameter is the function which receives the event (first parameter of the event will be the object for which the event occured)&lt;br /&gt;
  clearemptyvars() - removes empty subvariables from memory&lt;br /&gt;
  clearvars() - clears all dynamic variables&lt;br /&gt;
  copyfrom(obj) - copies all variables and array values from another object, doesn't work for protected variables like players though&lt;br /&gt;
  getarraymember(str) - returns object - searches for an array member by name&lt;br /&gt;
  getdynamicvarnames() - returns object - gets the names of all dynamic (not built-in) subvariables of this object&lt;br /&gt;
  geteditvarnames() - returns object - gets the names of all dynamic variables which can be modified&lt;br /&gt;
  getfunctions() - returns object - gets the names of all functions of the object as array, also each entry has subvariables which give more information about the function (&amp;quot;parameters&amp;quot;, &amp;quot;description&amp;quot;, &amp;quot;scope&amp;quot;)&lt;br /&gt;
  getstaticvarnames() - returns object - gets the names of all static (built-in) subvariables of this object&lt;br /&gt;
  getvarnames() - returns object - gets the names of all subvariables of this object&lt;br /&gt;
  hasfunction(str) - returns boolean - checks if the object has a function of the specified name (also checks if it can be called by the current script object)&lt;br /&gt;
  ignoreevent(str, str) - lets the object ignore an event (second parameter) of the specified object name&lt;br /&gt;
  ignoreevents(str) - lets the object ignore all previously catched events of the specified object name&lt;br /&gt;
  insertarray(int, obj) - inserts an array at the specified index&lt;br /&gt;
  isinclass(str) - returns boolean - checks if the object has joined the specified class&lt;br /&gt;
  join(str) - lets the object join a class and inherit all functions and event handlers of that class&lt;br /&gt;
  leave(str) - leaves a previously joined class&lt;br /&gt;
  loadfolder(str, int) - loads the content of a folder into the variable, you must specify the folder name and pattern (e.g. &amp;quot;levels/bodies/*.png&amp;quot;) and if it should be recursive&lt;br /&gt;
  loadini(str) - loads an .ini file into the variable, you can access variables by obj.inisection.varname&lt;br /&gt;
  loadlines(str) - loads a file and adds it line by line to the variable (as array)&lt;br /&gt;
  loadstring(str) - loads the content of a file into the variable&lt;br /&gt;
  loadvars(str) - loads the variables from a file where each line has the format varname=value&lt;br /&gt;
  loadvarsfromarray(obj) - loads the variables from a string list of the format varname=value&lt;br /&gt;
  loadxml(str)&lt;br /&gt;
  loadxmlfromstring(str)&lt;br /&gt;
  objecttype() - returns string - returns the object type, which can be TGraalVar, TProjectile etc.&lt;br /&gt;
  savelines(str, int) - saves the array line by line into a file, the second parameter is the save mode (0 - overwrite, 1 - append)&lt;br /&gt;
  savestring(str, int) - saves the value as string into a file, the second parameter is the save mode (0 - overwrite, 1 - append)&lt;br /&gt;
  savevars(str, int) - saves the subvars in the format varname=value into a file, the second parameter is the save mode (0 - overwrite, 1 - append)&lt;br /&gt;
  savevarstoarray(bool) - returns object - saves the subvars in the format varname=value into an array, you must specify if it should be sorted&lt;br /&gt;
  savexml(str, int)&lt;br /&gt;
  savexmltostring() - returns string&lt;br /&gt;
  scheduleevent(float, str, params...) - returns object - invokes an event (onEventname) after the specified delay (in seconds), second parameter is the event name, followed by the parameters&lt;br /&gt;
  settimer(float) - invokes an onTimeout event after the specified time, similar to 'timeout=value'&lt;br /&gt;
  sortascending() - sorts the array in ascending order (smallest value first)&lt;br /&gt;
  sortbyvalue(str, str, bool) - sorts an array, specify the variable of the array members which is compared, also the variable type and if it should be sorted ascending; variable type can be &amp;quot;string&amp;quot;, otherwise it is sorted by floating point value&lt;br /&gt;
  sortdescending() - sorts the array in descending order (highest value first)&lt;br /&gt;
  subarray2(int, int, int, int) - returns object - extracts a two-dimensional array, specify startpos1, length1, startpos2, length2&lt;br /&gt;
  timershow() - lets an npc show the current timeout variable, deprecated&lt;br /&gt;
  trigger(str, params...) - invokes an event on the object (onEventname) with the specified event name and parameters, doesn't interrupt the current script&lt;br /&gt;
&lt;br /&gt;
  ActionMap (TGraalVar):&lt;br /&gt;
    bind(str, str, str)&lt;br /&gt;
    getbinding(str) - returns string&lt;br /&gt;
    getcommand(str, str) - returns string&lt;br /&gt;
    load() - returns boolean&lt;br /&gt;
    pop()&lt;br /&gt;
    push()&lt;br /&gt;
    save()&lt;br /&gt;
    unbind(str, str)&lt;br /&gt;
&lt;br /&gt;
  DTSAniThread (TGraalVar):&lt;br /&gt;
    aniindex - integer [R]&lt;br /&gt;
    atend - boolean [R]&lt;br /&gt;
    attack - boolean&lt;br /&gt;
    endpos - float&lt;br /&gt;
    hold - boolean&lt;br /&gt;
    position - float&lt;br /&gt;
    sequence - string&lt;br /&gt;
    startpos - float&lt;br /&gt;
    state - string&lt;br /&gt;
    timescale - float&lt;br /&gt;
    transtitiontime - float&lt;br /&gt;
    isintransition() - returns boolean&lt;br /&gt;
    play()&lt;br /&gt;
&lt;br /&gt;
  GameMovementInterpolate (TGraalVar):&lt;br /&gt;
    rigid - object [R]&lt;br /&gt;
    applyimpulse(str, str)&lt;br /&gt;
&lt;br /&gt;
    GameMovementRigid (GameMovementInterpolate):&lt;br /&gt;
      addrigidmove(str, str) - adds torque and force vector&lt;br /&gt;
&lt;br /&gt;
  GameMovementList (TGraalVar):&lt;br /&gt;
    finishmoves()&lt;br /&gt;
    move3d(str, float, int)&lt;br /&gt;
&lt;br /&gt;
  GameShape (TGraalVar):&lt;br /&gt;
    pixelshader - string&lt;br /&gt;
    vertexshader - string&lt;br /&gt;
&lt;br /&gt;
    GameShapeDIF (GameShape):&lt;br /&gt;
      activatelight(str)&lt;br /&gt;
      deactivatelight(str)&lt;br /&gt;
&lt;br /&gt;
    GameShapeDTS (GameShape):&lt;br /&gt;
      materiallist - object [R]&lt;br /&gt;
      materials - object [R]&lt;br /&gt;
      forceanimations() - starts to animate the object to make sure the animations are the wished start position&lt;br /&gt;
      getanimation(int) - returns object&lt;br /&gt;
      listnodes() - returns object&lt;br /&gt;
      pauseanimation(int)&lt;br /&gt;
      playanimation(int, str, int) - returns object - specify animation slot, animation name and flags (1 - hold, 2 - atend, 4 - attackanimation)&lt;br /&gt;
      playanimation2(int, str, int, float, float, float, float) - returns object - specify animation slot, animation name, flags, startpos, endpos, timescale, transitiontime&lt;br /&gt;
      stopanimation(int)&lt;br /&gt;
&lt;br /&gt;
    GameShapeFT (GameShape):&lt;br /&gt;
      levels - integer&lt;br /&gt;
      seed - integer&lt;br /&gt;
&lt;br /&gt;
  MovieClip (TGraalVar):&lt;br /&gt;
    _level0 - object [R]&lt;br /&gt;
    _parent - object [R]&lt;br /&gt;
    _root - object [R]&lt;br /&gt;
    _visible - boolean&lt;br /&gt;
    _x - float&lt;br /&gt;
    _xmouse - float [R]&lt;br /&gt;
    _y - float&lt;br /&gt;
    _ymouse - float [R]&lt;br /&gt;
    alpha - float&lt;br /&gt;
    blue - float&lt;br /&gt;
    frame - integer&lt;br /&gt;
    framecount - integer [R]&lt;br /&gt;
    green - float&lt;br /&gt;
    height - float [R]&lt;br /&gt;
    layernames - object [R]&lt;br /&gt;
    looping - boolean&lt;br /&gt;
    math - object [R]&lt;br /&gt;
    objectname - string&lt;br /&gt;
    objectnames - object [R]&lt;br /&gt;
    playing - boolean&lt;br /&gt;
    red - float&lt;br /&gt;
    width - float [R]&lt;br /&gt;
    attachmovie(params...) - returns object - parameters are the movie clip to copy, the name of the new clip, and the layer&lt;br /&gt;
    createemptymovieclip(str, int) - returns object - parameters are the the name of the new clip and the layer&lt;br /&gt;
    duplicatemovieclip(params...) - returns object&lt;br /&gt;
    getbytesloaded() - returns integer&lt;br /&gt;
    getbytestotal() - returns integer&lt;br /&gt;
    getcolor() - returns string&lt;br /&gt;
    getdepth() - returns integer&lt;br /&gt;
    getlayer(str) - returns object&lt;br /&gt;
    getproperty(int) - returns string&lt;br /&gt;
    gotoandplay(params...) - specify the frame name or frame number&lt;br /&gt;
    gotoandstop(params...) - specify the frame name or frame number&lt;br /&gt;
    hittest(params...) - returns boolean&lt;br /&gt;
    nextframe()&lt;br /&gt;
    play()&lt;br /&gt;
    prevframe()&lt;br /&gt;
    removelayer(str)&lt;br /&gt;
    removemovieclip()&lt;br /&gt;
    setcolor(str)&lt;br /&gt;
    setproperty(int, str)&lt;br /&gt;
    stop()&lt;br /&gt;
    swapdepths(str)&lt;br /&gt;
    unloadmovie() - same as removeMovieClip()&lt;br /&gt;
&lt;br /&gt;
  MRandomGenerator (TGraalVar):&lt;br /&gt;
    seed - integer&lt;br /&gt;
    destroy()&lt;br /&gt;
    randfloat() - returns float - a random floating point number between 0 and 1&lt;br /&gt;
    randint() - returns integer - a random integer number between 0 and 2147483647, use the modulus operator to generate a value in a smaller range (e.g. obj.randInt()%10 to get a value between 0 and 9)&lt;br /&gt;
&lt;br /&gt;
    MRandomLCG (MRandomGenerator):&lt;br /&gt;
&lt;br /&gt;
    MRandomR250 (MRandomGenerator):&lt;br /&gt;
&lt;br /&gt;
  SimObject (TGraalVar):&lt;br /&gt;
&lt;br /&gt;
    SceneObject (SimObject):&lt;br /&gt;
      eulerrotation - string&lt;br /&gt;
      forwardvector - string&lt;br /&gt;
      objectbox - string [R]&lt;br /&gt;
      position - string&lt;br /&gt;
      renderposition - string&lt;br /&gt;
      rightvector - string&lt;br /&gt;
      rotation - string&lt;br /&gt;
      scale - string&lt;br /&gt;
      scaledobjectbox - string [R]&lt;br /&gt;
      transform - string&lt;br /&gt;
      upvector - string&lt;br /&gt;
      worldbox - string [R]&lt;br /&gt;
      worldboxcenter - string [R]&lt;br /&gt;
      x - float&lt;br /&gt;
      y - float&lt;br /&gt;
      z - float&lt;br /&gt;
      getforwardvector() - returns string&lt;br /&gt;
      getobjectbox() - returns string&lt;br /&gt;
      getposition() - returns string&lt;br /&gt;
      getrightvector() - returns string&lt;br /&gt;
      getscale() - returns string&lt;br /&gt;
      gettransform() - returns string&lt;br /&gt;
      getupvector() - returns string&lt;br /&gt;
      getworldbox() - returns string&lt;br /&gt;
      getworldboxcenter() - returns string&lt;br /&gt;
      light()&lt;br /&gt;
      setforwardvector(str)&lt;br /&gt;
      setposition(str)&lt;br /&gt;
      setrightvector(str)&lt;br /&gt;
      setscale(str)&lt;br /&gt;
      settransform(str)&lt;br /&gt;
      setupvector(str)&lt;br /&gt;
&lt;br /&gt;
      fxSunLight (SceneObject):&lt;br /&gt;
        animazimuth - boolean&lt;br /&gt;
        animbrightness - boolean&lt;br /&gt;
        animcolour - boolean&lt;br /&gt;
        animelevation - boolean&lt;br /&gt;
        animrotation - boolean&lt;br /&gt;
        animsize - boolean&lt;br /&gt;
        azimuthkeys - string&lt;br /&gt;
        azimuthtime - float&lt;br /&gt;
        blendmode - integer&lt;br /&gt;
        bluekeys - string&lt;br /&gt;
        brightness - float&lt;br /&gt;
        brightnesskeys - string&lt;br /&gt;
        brightnesstime - float&lt;br /&gt;
        colour - string&lt;br /&gt;
        colourtime - float&lt;br /&gt;
        elevationkeys - string&lt;br /&gt;
        elevationtime - float&lt;br /&gt;
        enable - boolean&lt;br /&gt;
        fadetime - float&lt;br /&gt;
        flaresize - float&lt;br /&gt;
        flaretp - boolean&lt;br /&gt;
        greenkeys - string&lt;br /&gt;
        lerpazimuth - boolean&lt;br /&gt;
        lerpbrightness - boolean&lt;br /&gt;
        lerpcolour - boolean&lt;br /&gt;
        lerpelevation - boolean&lt;br /&gt;
        lerprotation - boolean&lt;br /&gt;
        lerpsize - boolean&lt;br /&gt;
        linkflaresize - boolean&lt;br /&gt;
        localflarebitmap - string&lt;br /&gt;
        maxazimuth - float&lt;br /&gt;
        maxbrightness - float&lt;br /&gt;
        maxcolour - string&lt;br /&gt;
        maxelevation - float&lt;br /&gt;
        maxrotation - float&lt;br /&gt;
        maxsize - float&lt;br /&gt;
        minazimuth - float&lt;br /&gt;
        minbrightness - float&lt;br /&gt;
        mincolour - string&lt;br /&gt;
        minelevation - float&lt;br /&gt;
        minrotation - float&lt;br /&gt;
        minsize - float&lt;br /&gt;
        redkeys - string&lt;br /&gt;
        remoteflarebitmap - string&lt;br /&gt;
        rotationkeys - string&lt;br /&gt;
        rotationtime - float&lt;br /&gt;
        singlecolourkeys - boolean&lt;br /&gt;
        sizekeys - string&lt;br /&gt;
        sizetime - float&lt;br /&gt;
        sunazimuth - float&lt;br /&gt;
        sunelevation - float&lt;br /&gt;
        reset()&lt;br /&gt;
&lt;br /&gt;
      GameObject (SceneObject):&lt;br /&gt;
        alpha - float&lt;br /&gt;
        attachedtoobject - object&lt;br /&gt;
        attrobjects - object [R]&lt;br /&gt;
        chat - string&lt;br /&gt;
        collision - boolean&lt;br /&gt;
        iseditorobject - boolean&lt;br /&gt;
        liquidheight - float [R]&lt;br /&gt;
        liquidtype - string [R]&lt;br /&gt;
        movetype - string&lt;br /&gt;
        nick - string - same as nickname&lt;br /&gt;
        nickcolor - string&lt;br /&gt;
        nickname - string&lt;br /&gt;
        position - string&lt;br /&gt;
        scaledshapebox - string [R]&lt;br /&gt;
        shadow - boolean&lt;br /&gt;
        shape - string&lt;br /&gt;
        shapebox - string [R]&lt;br /&gt;
        showterrain - boolean&lt;br /&gt;
        skin - string&lt;br /&gt;
        solid - boolean&lt;br /&gt;
        transform - string&lt;br /&gt;
        velocity - string&lt;br /&gt;
        watercoverage - float [R]&lt;br /&gt;
        checkcollision(str, str) - returns object&lt;br /&gt;
        checkcollisionbybox(str, str, str) - returns object&lt;br /&gt;
        clippolygons(str) - returns object&lt;br /&gt;
        findimg(int) - returns object&lt;br /&gt;
        getcontrollingclient() - returns object&lt;br /&gt;
        getcontrollingobject() - returns object&lt;br /&gt;
        getdropz(str) - returns float&lt;br /&gt;
        getinteriorobject() - returns object&lt;br /&gt;
        getmountedobject(int) - returns object&lt;br /&gt;
        getmountedobjectcount() - returns integer&lt;br /&gt;
        getmountedobjectnode(int) - returns integer&lt;br /&gt;
        getmountnodeobject(int) - returns object&lt;br /&gt;
        getmountposition(int) - returns string&lt;br /&gt;
        getmounttransform(int) - returns string&lt;br /&gt;
        getnodeposition(str) - returns string&lt;br /&gt;
        getnodetransform(str) - returns string&lt;br /&gt;
        getobjectmount() - returns object&lt;br /&gt;
        hideimg(int)&lt;br /&gt;
        hideimgs(int, int)&lt;br /&gt;
        isdrawn() - returns boolean&lt;br /&gt;
        isininterior() - returns boolean&lt;br /&gt;
        ismounted() - returns boolean&lt;br /&gt;
        mountobject(obj, int) - returns boolean&lt;br /&gt;
        setdirection(str)&lt;br /&gt;
        unmount()&lt;br /&gt;
        unmountobject(obj) - returns boolean&lt;br /&gt;
&lt;br /&gt;
        Camera (GameObject):&lt;br /&gt;
          cameramode - string&lt;br /&gt;
          eulerrotation - string&lt;br /&gt;
          followattachedobject - object&lt;br /&gt;
          lookatposition - string&lt;br /&gt;
          lookvector - string&lt;br /&gt;
          updateposition()&lt;br /&gt;
&lt;br /&gt;
        DynamicShapeReplicator (GameObject):&lt;br /&gt;
          aligntoterrain - boolean&lt;br /&gt;
          allowedterrainslope - integer&lt;br /&gt;
          allowoninteriors - boolean&lt;br /&gt;
          allowonstatics - boolean&lt;br /&gt;
          allowonterrain - boolean&lt;br /&gt;
          allowonwater - boolean&lt;br /&gt;
          allowwatersurface - boolean&lt;br /&gt;
          boxmax - string&lt;br /&gt;
          boxmin - string&lt;br /&gt;
          hidereplications - boolean&lt;br /&gt;
          maxgridobjects - integer&lt;br /&gt;
          mingridobjects - integer&lt;br /&gt;
          offsetz - float&lt;br /&gt;
          radius - integer&lt;br /&gt;
          seed - integer&lt;br /&gt;
          shapefiles - string&lt;br /&gt;
          shaperotatemax - string&lt;br /&gt;
          shaperotatemin - string&lt;br /&gt;
          shapescalemax - string&lt;br /&gt;
          shapescalemin - string&lt;br /&gt;
          surfaceexclusionmode - boolean&lt;br /&gt;
          surfacetype - integer&lt;br /&gt;
          terrainalignment - string&lt;br /&gt;
&lt;br /&gt;
          DynamicGrass (DynamicShapeReplicator):&lt;br /&gt;
&lt;br /&gt;
          DynamicGrassReplicator (DynamicShapeReplicator):&lt;br /&gt;
&lt;br /&gt;
      Sky (SceneObject):&lt;br /&gt;
        cloudheight1 - float&lt;br /&gt;
        cloudheight2 - float&lt;br /&gt;
        cloudheight3 - float&lt;br /&gt;
        cloudspeed1 - float&lt;br /&gt;
        cloudspeed2 - float&lt;br /&gt;
        cloudspeed3 - float&lt;br /&gt;
        fogcolor - string&lt;br /&gt;
        fogstorm1 - boolean&lt;br /&gt;
        fogstorm2 - boolean&lt;br /&gt;
        fogstorm3 - boolean&lt;br /&gt;
        fogvolume1 - string&lt;br /&gt;
        fogvolume2 - string&lt;br /&gt;
        fogvolume3 - string&lt;br /&gt;
        fogvolumecolor1 - string&lt;br /&gt;
        fogvolumecolor2 - string&lt;br /&gt;
        fogvolumecolor3 - string&lt;br /&gt;
        materiallist - string&lt;br /&gt;
        norenderbans - boolean&lt;br /&gt;
        renderbottomtexture - boolean&lt;br /&gt;
        skyfadetime - float&lt;br /&gt;
        skysolidcolor - string&lt;br /&gt;
        useskytextures - boolean&lt;br /&gt;
        windeffectprecipitation - boolean&lt;br /&gt;
        windvelocity - string&lt;br /&gt;
        getwindowvelocity() - returns string&lt;br /&gt;
        realfog(bool, float, float, float) - specify if it should show, and max, min and speed values&lt;br /&gt;
        stormclouds(bool, float) - specify if it should show, and the duration&lt;br /&gt;
        stormcloudsshow(bool)&lt;br /&gt;
        stormfog(float, float) - percent and duration of the fog&lt;br /&gt;
        stormfogshow(bool)&lt;br /&gt;
&lt;br /&gt;
      TerrainBlock (SceneObject):&lt;br /&gt;
        repeatterrain - boolean&lt;br /&gt;
        squaresize - integer&lt;br /&gt;
        terrainfile - string&lt;br /&gt;
&lt;br /&gt;
      WaterBlock (SceneObject):&lt;br /&gt;
        density - float&lt;br /&gt;
        depthgradient - float&lt;br /&gt;
        distortgridscale - float&lt;br /&gt;
        distortmag - float&lt;br /&gt;
        distorttime - float&lt;br /&gt;
        envmapintensity - float&lt;br /&gt;
        envmapovertexture - string&lt;br /&gt;
        envmapundertexture - string&lt;br /&gt;
        flowangle - float&lt;br /&gt;
        flowrate - float&lt;br /&gt;
        ignoreterrain - boolean&lt;br /&gt;
        liquidtype - string&lt;br /&gt;
        maxalpha - float&lt;br /&gt;
        minalpha - float&lt;br /&gt;
        removewetedges - boolean&lt;br /&gt;
        shoredepth - float&lt;br /&gt;
        shoretexture - string&lt;br /&gt;
        specularcolor - string&lt;br /&gt;
        specularmasktex - string&lt;br /&gt;
        specularpower - float&lt;br /&gt;
        submergetexture0 - string&lt;br /&gt;
        submergetexture1 - string&lt;br /&gt;
        surfaceopacity - float&lt;br /&gt;
        surfaceparallax - float&lt;br /&gt;
        surfacetexture - string&lt;br /&gt;
        tessshore - float&lt;br /&gt;
        tesssurface - float&lt;br /&gt;
        usedepthmask - boolean&lt;br /&gt;
        viscosity - float&lt;br /&gt;
        wavemagnitude - float&lt;br /&gt;
&lt;br /&gt;
    SimGroup (SimObject):&lt;br /&gt;
      addcontrol(obj)&lt;br /&gt;
&lt;br /&gt;
      GameConnection (SimGroup):&lt;br /&gt;
        account - string [R]&lt;br /&gt;
        camera - object [R]&lt;br /&gt;
        communityname - string [R]&lt;br /&gt;
        isobserver - boolean [R]&lt;br /&gt;
        nick - string [R]&lt;br /&gt;
        objecttype() - returns string&lt;br /&gt;
        showprofile()&lt;br /&gt;
&lt;br /&gt;
    Sun (SimObject):&lt;br /&gt;
      ambient - string&lt;br /&gt;
      color - string&lt;br /&gt;
      direction - string&lt;br /&gt;
&lt;br /&gt;
  TDrawableObject (TGraalVar):&lt;br /&gt;
    layer - integer [R]&lt;br /&gt;
&lt;br /&gt;
    TBaddy (TDrawableObject):&lt;br /&gt;
      dir - integer&lt;br /&gt;
      headdir - integer&lt;br /&gt;
      mode - integer&lt;br /&gt;
      power - integer&lt;br /&gt;
      type - integer&lt;br /&gt;
      x - float&lt;br /&gt;
      y - float&lt;br /&gt;
&lt;br /&gt;
    TLevelObject (TDrawableObject):&lt;br /&gt;
      level - object [R]&lt;br /&gt;
      x - float&lt;br /&gt;
      y - float&lt;br /&gt;
      z - float&lt;br /&gt;
&lt;br /&gt;
      TExplosion (TLevelObject):&lt;br /&gt;
        dir - integer [R]&lt;br /&gt;
        power - integer [R]&lt;br /&gt;
        time - float [R]&lt;br /&gt;
&lt;br /&gt;
      TGaniObject (TLevelObject):&lt;br /&gt;
        alpha - float&lt;br /&gt;
        ani - object [R]&lt;br /&gt;
        aniparams - string [R]&lt;br /&gt;
        anistep - integer [R]&lt;br /&gt;
        attachedtoobject - object [R]&lt;br /&gt;
        attachid - integer [R]&lt;br /&gt;
        attachtype - integer [R]&lt;br /&gt;
        attr - object [R]&lt;br /&gt;
        blue - float&lt;br /&gt;
        body - string&lt;br /&gt;
        bodyimg - string&lt;br /&gt;
        colors - object [R]&lt;br /&gt;
        dir - integer&lt;br /&gt;
        gmap - object [R]&lt;br /&gt;
        green - float&lt;br /&gt;
        head - string&lt;br /&gt;
        headimg - string&lt;br /&gt;
        mode - integer - the object drawing mode (0 - add, 1 - transparent, 2 - subtract, 3 - daynight)&lt;br /&gt;
        red - float&lt;br /&gt;
        rotation - float&lt;br /&gt;
        shield - string&lt;br /&gt;
        sprite - integer&lt;br /&gt;
        stretchx - float&lt;br /&gt;
        stretchy - float&lt;br /&gt;
        sword - string&lt;br /&gt;
        zoom - float&lt;br /&gt;
        getimageforsprite(obj) - returns string&lt;br /&gt;
        getsprite(str) - returns object&lt;br /&gt;
        getspriteforspritepos(obj) - returns object&lt;br /&gt;
        setcoloreffect(float, float, float, float)&lt;br /&gt;
        seteffectmode(int)&lt;br /&gt;
&lt;br /&gt;
        TProjectile (TGaniObject):&lt;br /&gt;
          angle - float [R]&lt;br /&gt;
          fromplayer - object [R]&lt;br /&gt;
          horiz - boolean [R]&lt;br /&gt;
          params - object [R]&lt;br /&gt;
          speed - float [R]&lt;br /&gt;
          x - float [R]&lt;br /&gt;
          y - float [R]&lt;br /&gt;
          z - float [R]&lt;br /&gt;
          zspeed - float [R]&lt;br /&gt;
&lt;br /&gt;
        TServerHorse (TGaniObject):&lt;br /&gt;
          bombpower - integer&lt;br /&gt;
          bombs - integer&lt;br /&gt;
          bushes - integer&lt;br /&gt;
          dir - integer&lt;br /&gt;
          type - integer&lt;br /&gt;
&lt;br /&gt;
        TServerPlayer (TGaniObject):&lt;br /&gt;
          account - string [R]&lt;br /&gt;
          ap - integer&lt;br /&gt;
          attached - boolean [R]&lt;br /&gt;
          attachedtoobject - object&lt;br /&gt;
          bombs - integer&lt;br /&gt;
          chat - string&lt;br /&gt;
          communityname - string [R]&lt;br /&gt;
          darts - integer&lt;br /&gt;
          fullhearts - integer [R]&lt;br /&gt;
          glovepower - integer&lt;br /&gt;
          gralats - integer&lt;br /&gt;
          guild - string [R]&lt;br /&gt;
          headimg - string&lt;br /&gt;
          headset - integer&lt;br /&gt;
          hearts - float [R]&lt;br /&gt;
          horseimg - string [R]&lt;br /&gt;
          hp - float [R]&lt;br /&gt;
          id - integer [R]&lt;br /&gt;
          isadmin - boolean [R]&lt;br /&gt;
          isbuddy - boolean&lt;br /&gt;
          ischannel - boolean [R]&lt;br /&gt;
          ischannelopen - boolean [R]&lt;br /&gt;
          ischanneluser - boolean [R]&lt;br /&gt;
          isexternal - boolean [R]&lt;br /&gt;
          isfemale - boolean [R]&lt;br /&gt;
          isignored - boolean&lt;br /&gt;
          isignoring - boolean [R]&lt;br /&gt;
          isloggedin - boolean [R]&lt;br /&gt;
          ismale - boolean [R]&lt;br /&gt;
          ismuted - boolean [R]&lt;br /&gt;
          ismuting - boolean [R]&lt;br /&gt;
          language - string [R]&lt;br /&gt;
          languagedomain - string [R]&lt;br /&gt;
          mapicon - object [R] - of type TDrawingPanel, this is the icon that appears on the mini-map, usually updated by the playerlist script&lt;br /&gt;
          maxhp - integer [R]&lt;br /&gt;
          messagebubble - integer [R]&lt;br /&gt;
          mp - integer&lt;br /&gt;
          nick - string&lt;br /&gt;
          platform - string [R]&lt;br /&gt;
          playersindex - integer [R]&lt;br /&gt;
          rating - float [R]&lt;br /&gt;
          ratingd - float [R]&lt;br /&gt;
          rupees - integer - better use 'gralats'&lt;br /&gt;
          shieldimg - string - only there for compatibility with GS1, use just 'shield' instead&lt;br /&gt;
          shieldpower - integer [R]&lt;br /&gt;
          swordimg - string - only there for compatibility with GS1, use just 'sword' instead&lt;br /&gt;
          swordpower - integer [R]&lt;br /&gt;
          x - float&lt;br /&gt;
          y - float&lt;br /&gt;
          isguildpm() - returns boolean&lt;br /&gt;
          ismasspm() - returns boolean&lt;br /&gt;
          openexternalhistory() - returns boolean&lt;br /&gt;
          openexternalpm(bool) - returns boolean - as parameter specify 'true' if it should display the pm sent by the player, otherwise always open a blank PM window&lt;br /&gt;
          pmswaiting() - returns boolean&lt;br /&gt;
          showprofile()&lt;br /&gt;
&lt;br /&gt;
          TPlayer (TServerPlayer):&lt;br /&gt;
            ap - integer&lt;br /&gt;
            chat - string&lt;br /&gt;
            freezetime - float&lt;br /&gt;
            hearts - float&lt;br /&gt;
            horseimg - string&lt;br /&gt;
            hp - float&lt;br /&gt;
            hurt - boolean [R]&lt;br /&gt;
            hurtdx - float [R]&lt;br /&gt;
            hurtdy - float [R]&lt;br /&gt;
            hurted - boolean [R]&lt;br /&gt;
            hurtpower - float [R]&lt;br /&gt;
            isfemale - boolean [R]&lt;br /&gt;
            ismale - boolean [R]&lt;br /&gt;
            isobserver - boolean [R]&lt;br /&gt;
            letters - string&lt;br /&gt;
            map - boolean [R]&lt;br /&gt;
            nick - string [R]&lt;br /&gt;
            onhorse - boolean [R]&lt;br /&gt;
            online - boolean [R]&lt;br /&gt;
            paused - boolean [R]&lt;br /&gt;
            reading - boolean [R]&lt;br /&gt;
            shieldimg - string - same as 'shield', except that changing this also updates the shieldpower&lt;br /&gt;
            sprite - integer&lt;br /&gt;
            swimming - boolean [R]&lt;br /&gt;
            swordimg - string - same as 'sword', except that changing this also updates the swordpower&lt;br /&gt;
            weapon - object [R]&lt;br /&gt;
            weapons - object [R]&lt;br /&gt;
&lt;br /&gt;
          TServerNPC (TServerPlayer):&lt;br /&gt;
            actionplayer - integer [R]&lt;br /&gt;
            hearts - float&lt;br /&gt;
            height - float [R]&lt;br /&gt;
            horseimg - string&lt;br /&gt;
            hp - float&lt;br /&gt;
            hurtdx - float&lt;br /&gt;
            hurtdy - float&lt;br /&gt;
            image - string&lt;br /&gt;
            isblocking - boolean&lt;br /&gt;
            isblockingprojectiles - boolean&lt;br /&gt;
            layer - integer&lt;br /&gt;
            npcsindex - integer [R]&lt;br /&gt;
            peltwithblackstone - boolean [R]&lt;br /&gt;
            peltwithbush - boolean [R]&lt;br /&gt;
            peltwithnpc - boolean [R]&lt;br /&gt;
            peltwithsign - boolean [R]&lt;br /&gt;
            peltwithstone - boolean [R]&lt;br /&gt;
            peltwithvase - boolean [R]&lt;br /&gt;
            save - object [R]&lt;br /&gt;
            shieldpower - integer&lt;br /&gt;
            sprite - integer&lt;br /&gt;
            swordpower - integer&lt;br /&gt;
            visible - boolean&lt;br /&gt;
            width - float [R]&lt;br /&gt;
            x - float&lt;br /&gt;
            y - float&lt;br /&gt;
            blockagain()&lt;br /&gt;
            blockagainlocal()&lt;br /&gt;
            canbecarried()&lt;br /&gt;
            canbepulled()&lt;br /&gt;
            canbepushed()&lt;br /&gt;
            cannotbecarried()&lt;br /&gt;
            cannotbepulled()&lt;br /&gt;
            cannotbepushed()&lt;br /&gt;
            carryobject(str)&lt;br /&gt;
            changeimgcolors(int, float, float, float, float)&lt;br /&gt;
            changeimgmode(int, int)&lt;br /&gt;
            changeimgpart(int, int, int, int, int)&lt;br /&gt;
            changeimgvis(int, int)&lt;br /&gt;
            changeimgzoom(int, float)&lt;br /&gt;
            destroy()&lt;br /&gt;
            dontblock()&lt;br /&gt;
            dontblocklocal()&lt;br /&gt;
            drawaslight()&lt;br /&gt;
            drawoverplayer()&lt;br /&gt;
            drawunderplayer()&lt;br /&gt;
            findimg(int) - returns object&lt;br /&gt;
            hide()&lt;br /&gt;
            hideimg(int)&lt;br /&gt;
            hideimgs(int, int)&lt;br /&gt;
            hidelocal()&lt;br /&gt;
            hurt(int)&lt;br /&gt;
            lay(str)&lt;br /&gt;
            message(str)&lt;br /&gt;
            move(float, float, float, int)&lt;br /&gt;
            setbow(str)&lt;br /&gt;
            setcharani(str, str)&lt;br /&gt;
            setchargender(str)&lt;br /&gt;
            setimg(str)&lt;br /&gt;
            setimgpart(str, int, int, int, int)&lt;br /&gt;
            setshape(int, int, int)&lt;br /&gt;
            setshape2(int, int, obj)&lt;br /&gt;
            setzoomeffect(float)&lt;br /&gt;
            shootarrow(int)&lt;br /&gt;
            shootball()&lt;br /&gt;
            shootfireball(int)&lt;br /&gt;
            shootfireblast(int)&lt;br /&gt;
            shootnuke(int)&lt;br /&gt;
            show()&lt;br /&gt;
            showani(int, float, float, int, str) - returns object&lt;br /&gt;
            showani2(int, float, float, float, int, str) - returns object&lt;br /&gt;
            showcharacter()&lt;br /&gt;
            showimg(int, str, float, float) - returns object&lt;br /&gt;
            showimg2(int, str, float, float, float) - returns object&lt;br /&gt;
            showlocal()&lt;br /&gt;
            showpoly(int, obj) - returns object&lt;br /&gt;
            showpoly2(int, obj) - returns object&lt;br /&gt;
            showtext(int, float, float, str, str, str) - returns object&lt;br /&gt;
            showtext2(int, float, float, float, str, str, str) - returns object&lt;br /&gt;
            take(str)&lt;br /&gt;
            take2(int)&lt;br /&gt;
            takehorse(int)&lt;br /&gt;
            throwcarry()&lt;br /&gt;
            timereverywhere()&lt;br /&gt;
&lt;br /&gt;
            TServerWeapon (TServerNPC):&lt;br /&gt;
              isweapon - boolean [R]&lt;br /&gt;
&lt;br /&gt;
      TServerBomb (TLevelObject):&lt;br /&gt;
        power - integer&lt;br /&gt;
        time - float&lt;br /&gt;
&lt;br /&gt;
      TServerCarry (TLevelObject):&lt;br /&gt;
&lt;br /&gt;
      TServerChest (TLevelObject):&lt;br /&gt;
        isopen - boolean [R]&lt;br /&gt;
        item - string [R]&lt;br /&gt;
&lt;br /&gt;
      TServerExtra (TLevelObject):&lt;br /&gt;
        time - float [R]&lt;br /&gt;
        type - integer [R]&lt;br /&gt;
&lt;br /&gt;
      TServerFlying (TLevelObject):&lt;br /&gt;
        dir - integer [R]&lt;br /&gt;
        dx - float&lt;br /&gt;
        dy - float&lt;br /&gt;
        from - integer [R]&lt;br /&gt;
        type - integer [R]&lt;br /&gt;
&lt;br /&gt;
      TServerLeap (TLevelObject):&lt;br /&gt;
&lt;br /&gt;
      TServerSign (TLevelObject):&lt;br /&gt;
        text - string&lt;br /&gt;
&lt;br /&gt;
      TShowImg (TLevelObject):&lt;br /&gt;
        alpha - float&lt;br /&gt;
        ani - string&lt;br /&gt;
        attachnode - string&lt;br /&gt;
        attachoffset - string&lt;br /&gt;
        attachtoowner - boolean&lt;br /&gt;
        blue - float&lt;br /&gt;
        code - string - the old representation as 'font@style@text'&lt;br /&gt;
        dimension - integer&lt;br /&gt;
        dir - integer&lt;br /&gt;
        emitter - object [R]&lt;br /&gt;
        eulerrotation - string&lt;br /&gt;
        flashfile - string&lt;br /&gt;
        font - string&lt;br /&gt;
        green - float&lt;br /&gt;
        image - string&lt;br /&gt;
        imageindex - integer [R]&lt;br /&gt;
        is3dlight - boolean&lt;br /&gt;
        layer - integer&lt;br /&gt;
        mode - integer - the image drawing mode (0 - add, 1 - transparent, 2 - subtract, 3 - daynight)&lt;br /&gt;
        playerlook - boolean - if the animation should take it's head, body, sword, shield and attr[] from the owner (playerlook), set this to false if you want to set the images yourself by changing showimg.actor.head etc.&lt;br /&gt;
        polygon - object&lt;br /&gt;
        position - string&lt;br /&gt;
        red - float&lt;br /&gt;
        rotation - float&lt;br /&gt;
        shape - string&lt;br /&gt;
        shapeobject - object [R]&lt;br /&gt;
        spin - float&lt;br /&gt;
        stretchx - float&lt;br /&gt;
        stretchy - float&lt;br /&gt;
        style - string&lt;br /&gt;
        text - string&lt;br /&gt;
        x - float&lt;br /&gt;
        y - float&lt;br /&gt;
        z - float&lt;br /&gt;
        zoom - float&lt;br /&gt;
&lt;br /&gt;
  TDrawingPanel (TGraalVar):&lt;br /&gt;
    height - integer [R]&lt;br /&gt;
    isclear - boolean [R]&lt;br /&gt;
    parth - integer [R]&lt;br /&gt;
    partw - integer [R]&lt;br /&gt;
    partx - integer [R]&lt;br /&gt;
    party - integer [R]&lt;br /&gt;
    width - integer [R]&lt;br /&gt;
    clearall()&lt;br /&gt;
    clearrectangle(int, int, int, int) - x, y, width and height&lt;br /&gt;
    drawimage(int, int, str) - x, y, source image&lt;br /&gt;
    drawimagerectangle(int, int, str, int, int, int, int) - destination x and y, source image, source x,y,width and height&lt;br /&gt;
    drawimagestretched(int, int, int, int, str, int, int, int, int) - destination x,y,width and height, source image, source x,y,width and height&lt;br /&gt;
    saveimage(str)&lt;br /&gt;
&lt;br /&gt;
  Terraformer (TGraalVar):&lt;br /&gt;
    loadgrayscale(int, str) - returns boolean&lt;br /&gt;
    loadgreyscale(int, str) - returns boolean&lt;br /&gt;
    savegreyscale(int, str) - returns boolean&lt;br /&gt;
    setterrain(int) - returns boolean&lt;br /&gt;
&lt;br /&gt;
  TFrameDetail (TGraalVar):&lt;br /&gt;
    bordercolor - string&lt;br /&gt;
    borderenable - string&lt;br /&gt;
    bordermovable - string&lt;br /&gt;
    borderwidth - integer&lt;br /&gt;
    minextent - string&lt;br /&gt;
&lt;br /&gt;
  TGameObjectAttr (TGraalVar):&lt;br /&gt;
&lt;br /&gt;
  TGaniParam (TGraalVar):&lt;br /&gt;
&lt;br /&gt;
  TGraalAni (TGraalVar):&lt;br /&gt;
    continuous - boolean&lt;br /&gt;
    ganitype - string [R]&lt;br /&gt;
    loop - boolean&lt;br /&gt;
    movie - boolean&lt;br /&gt;
    setbackto - string&lt;br /&gt;
    singledirection - boolean&lt;br /&gt;
    addsprite(int) - returns object&lt;br /&gt;
    addstep() - returns object&lt;br /&gt;
    deletesprite(int)&lt;br /&gt;
    deletestep(int)&lt;br /&gt;
    getsprite(int) - returns object&lt;br /&gt;
    insertstep(int) - returns object&lt;br /&gt;
&lt;br /&gt;
  TGraalAniPart (TGraalVar):&lt;br /&gt;
    attr - integer&lt;br /&gt;
    dx - integer&lt;br /&gt;
    dy - integer&lt;br /&gt;
    param - integer&lt;br /&gt;
    sprite - object&lt;br /&gt;
&lt;br /&gt;
  TGraalAniSound (TGraalVar):&lt;br /&gt;
    delay - float&lt;br /&gt;
    dx - float&lt;br /&gt;
    dy - float&lt;br /&gt;
    sound - string&lt;br /&gt;
&lt;br /&gt;
  TGraalAniSprite (TGraalVar):&lt;br /&gt;
    alpha - float&lt;br /&gt;
    blue - float&lt;br /&gt;
    description - string&lt;br /&gt;
    green - float&lt;br /&gt;
    height - integer&lt;br /&gt;
    image - string&lt;br /&gt;
    imagetype - string [R]&lt;br /&gt;
    mode - integer&lt;br /&gt;
    red - float&lt;br /&gt;
    rotation - float&lt;br /&gt;
    spriteindex - integer&lt;br /&gt;
    stretchx - float&lt;br /&gt;
    stretchy - float&lt;br /&gt;
    width - integer&lt;br /&gt;
    x - integer&lt;br /&gt;
    y - integer&lt;br /&gt;
    zoom - float&lt;br /&gt;
    addattachment() - returns object&lt;br /&gt;
    deleteattachment(int)&lt;br /&gt;
    insertattachment(int) - returns object&lt;br /&gt;
&lt;br /&gt;
  TGraalAniStep (TGraalVar):&lt;br /&gt;
    delay - float&lt;br /&gt;
    addpos(int) - returns object&lt;br /&gt;
    deletepos(int, int)&lt;br /&gt;
    insertpos(int, int) - returns object&lt;br /&gt;
&lt;br /&gt;
  TGraalSpriteAttachment (TGraalVar):&lt;br /&gt;
    behind - boolean&lt;br /&gt;
    dx - integer&lt;br /&gt;
    dy - integer&lt;br /&gt;
    sprite - object&lt;br /&gt;
&lt;br /&gt;
  THTTPRequest (TGraalVar):&lt;br /&gt;
    address - string [R]&lt;br /&gt;
    contentlanguage - string [R]&lt;br /&gt;
    contentlength - integer [R]&lt;br /&gt;
    contenttype - string [R]&lt;br /&gt;
    downloadcomplete - boolean [R]&lt;br /&gt;
    file - string [R]&lt;br /&gt;
    fulldata - string [R]&lt;br /&gt;
    lastmodified - string [R]&lt;br /&gt;
    port - integer [R]&lt;br /&gt;
    returncode - integer [R]&lt;br /&gt;
    returnmessage - string [R]&lt;br /&gt;
    server - string [R]&lt;br /&gt;
    url - string [R]&lt;br /&gt;
&lt;br /&gt;
  TMovementRigid (TGraalVar):&lt;br /&gt;
    mass - float&lt;br /&gt;
&lt;br /&gt;
  TParticle (TGraalVar):&lt;br /&gt;
    angle - float&lt;br /&gt;
    lifetime - float&lt;br /&gt;
    movementvector - string&lt;br /&gt;
    sound - string&lt;br /&gt;
    speed - float&lt;br /&gt;
    zangle - float&lt;br /&gt;
&lt;br /&gt;
  TParticleEmitter (TGraalVar):&lt;br /&gt;
    attachposition - boolean&lt;br /&gt;
    autorotation - boolean&lt;br /&gt;
    checkbelowterrain - boolean&lt;br /&gt;
    clippingbox - string&lt;br /&gt;
    cliptoscreen - boolean&lt;br /&gt;
    continueafterdestroy - boolean&lt;br /&gt;
    currentparticlecount - integer [R]&lt;br /&gt;
    delaymax - float&lt;br /&gt;
    delaymin - float&lt;br /&gt;
    dropemitter - object [R]&lt;br /&gt;
    dropwateremitter - object [R]&lt;br /&gt;
    emissionoffset - string&lt;br /&gt;
    emitatterrainheight - boolean&lt;br /&gt;
    emitautomatically - boolean&lt;br /&gt;
    emittedparticles - integer [R]&lt;br /&gt;
    firstinfront - boolean&lt;br /&gt;
    isfrozen - boolean&lt;br /&gt;
    maxparticles - integer&lt;br /&gt;
    movementfactor - float&lt;br /&gt;
    nrofparticles - integer&lt;br /&gt;
    particle - object [R]&lt;br /&gt;
    particletypes - integer&lt;br /&gt;
    wraptoclippingbox - boolean&lt;br /&gt;
    addemitmodifier(str, float, float, str, str, float, float) - returns object&lt;br /&gt;
    addglobalmodifier(str, float, float, str, str, float, float) - returns object&lt;br /&gt;
    addlocalmodifier(str, float, float, str, str, float, float) - returns object&lt;br /&gt;
    advancetime(float)&lt;br /&gt;
    emit()&lt;br /&gt;
    emitat(str)&lt;br /&gt;
    removemodifiers()&lt;br /&gt;
    removeparticles()&lt;br /&gt;
&lt;br /&gt;
  TParticleModifier (TGraalVar):&lt;br /&gt;
    addmod(str, str, float, float)&lt;br /&gt;
&lt;br /&gt;
  TScriptFunction (TGraalVar):&lt;br /&gt;
&lt;br /&gt;
  TServerLevel (TGraalVar):&lt;br /&gt;
    compsdead - boolean [R]&lt;br /&gt;
    height - integer [R]&lt;br /&gt;
    isnopkzone - boolean [R]&lt;br /&gt;
    issparringzone - boolean [R]&lt;br /&gt;
    nopkzone - boolean [R] - same like 'isnopkzone'&lt;br /&gt;
    tilelayercount - integer&lt;br /&gt;
    width - integer [R]&lt;br /&gt;
    findareanpcs(float, float, float, float) - returns object - returns an array of all npcs at the specified rectangle (x,y,width,height)&lt;br /&gt;
    getmappartfile(float, float) - returns string&lt;br /&gt;
    hitcompu(int, int, float, float)&lt;br /&gt;
    putbomb(int, float, float)&lt;br /&gt;
    putcomp(str, float, float)&lt;br /&gt;
    putexplosion(int, float, float)&lt;br /&gt;
    putexplosion2(int, int, float, float)&lt;br /&gt;
    puthorse(str, float, float)&lt;br /&gt;
    putnewcomp(str, float, float, str, int)&lt;br /&gt;
    reflectarrow(int)&lt;br /&gt;
    removearrow(int)&lt;br /&gt;
    removebomb(int)&lt;br /&gt;
    removecompus()&lt;br /&gt;
    removeexplo(int)&lt;br /&gt;
    removehorse(int)&lt;br /&gt;
    removeitem(int)&lt;br /&gt;
    setz(int, int, int, int, float, float, float, float)&lt;br /&gt;
    shoot(float, float, float, float, float, float, str, str) - shoots a projectile with x,y,z,angle,zangle,strength,ani,aniparams&lt;br /&gt;
    testbomb(float, float) - returns integer&lt;br /&gt;
    testexplo(float, float) - returns integer&lt;br /&gt;
    testhorse(float, float) - returns integer&lt;br /&gt;
    testitem(float, float) - returns integer&lt;br /&gt;
    testnpc(float, float) - returns integer&lt;br /&gt;
    testsign(float, float) - returns integer&lt;br /&gt;
    tiletype(float, float) - returns integer&lt;br /&gt;
&lt;br /&gt;
  TServerLevelLink (TGraalVar):&lt;br /&gt;
    destlevel - string [R]&lt;br /&gt;
    destx - float [R]&lt;br /&gt;
    desty - float [R]&lt;br /&gt;
    height - float [R]&lt;br /&gt;
    width - float [R]&lt;br /&gt;
    x - float [R]&lt;br /&gt;
    y - float [R]&lt;br /&gt;
&lt;br /&gt;
  TShapeMaterial (TGraalVar):&lt;br /&gt;
    specularpower - integer&lt;br /&gt;
&lt;br /&gt;
  TShowImg_Values (TGraalVar):&lt;br /&gt;
    alpha - float&lt;br /&gt;
    blue - float&lt;br /&gt;
    green - float&lt;br /&gt;
    mode - integer - the image drawing mode (0 - add, 1 - transparent, 2 - subtract, 3 - daynight)&lt;br /&gt;
    red - float&lt;br /&gt;
    rotation - float&lt;br /&gt;
    spin - float&lt;br /&gt;
    stretchx - float&lt;br /&gt;
    stretchy - float&lt;br /&gt;
    zoom - float&lt;br /&gt;
&lt;br /&gt;
    TShowImg_Flash (TShowImg_Values):&lt;br /&gt;
      flash - object [R]&lt;br /&gt;
&lt;br /&gt;
    TShowImg_Gani (TShowImg_Values):&lt;br /&gt;
      actor - object [R]&lt;br /&gt;
&lt;br /&gt;
    TShowImg_Image (TShowImg_Values):&lt;br /&gt;
      height - float&lt;br /&gt;
      parth - integer&lt;br /&gt;
      partw - integer&lt;br /&gt;
      partx - integer&lt;br /&gt;
      party - integer&lt;br /&gt;
      width - float&lt;br /&gt;
&lt;br /&gt;
    TShowImg_Poly (TShowImg_Values):&lt;br /&gt;
      parth - integer&lt;br /&gt;
      partw - integer&lt;br /&gt;
      partx - integer&lt;br /&gt;
      party - integer&lt;br /&gt;
&lt;br /&gt;
    TShowImg_Shape (TShowImg_Values):&lt;br /&gt;
      lightcolor - string&lt;br /&gt;
      lightdirection - string&lt;br /&gt;
      shadowdirection - string&lt;br /&gt;
&lt;br /&gt;
    TShowImg_Text (TShowImg_Values):&lt;br /&gt;
      parth - integer&lt;br /&gt;
      partw - integer&lt;br /&gt;
      partx - integer&lt;br /&gt;
      party - integer&lt;br /&gt;
      shadowcolor - string&lt;br /&gt;
      shadowoffset - string&lt;br /&gt;
      textshadow - boolean&lt;br /&gt;
&lt;br /&gt;
  TStaticVar (TGraalVar):&lt;br /&gt;
    destroy()&lt;br /&gt;
&lt;br /&gt;
    Array (TStaticVar):&lt;br /&gt;
      initialize(params...)&lt;br /&gt;
&lt;br /&gt;
    Color (TStaticVar):&lt;br /&gt;
      initialize(obj)&lt;br /&gt;
      setrgb(int)&lt;br /&gt;
&lt;br /&gt;
    Date (TStaticVar):&lt;br /&gt;
      initialize(params...)&lt;br /&gt;
&lt;br /&gt;
    Math (TStaticVar):&lt;br /&gt;
      abs(float) - returns float&lt;br /&gt;
      floor(float) - returns integer&lt;br /&gt;
      random() - returns float&lt;br /&gt;
      sin(float) - returns float&lt;br /&gt;
      sqrt(float) - returns float&lt;br /&gt;
&lt;br /&gt;
    Sound (TStaticVar):&lt;br /&gt;
      initialize(params...)&lt;br /&gt;
&lt;br /&gt;
    String (TStaticVar):&lt;br /&gt;
      initialize(params...)&lt;br /&gt;
&lt;br /&gt;
  TTilesLayer (TGraalVar):&lt;br /&gt;
    alpha - float&lt;br /&gt;
    blue - float&lt;br /&gt;
    green - float&lt;br /&gt;
    layerindex - integer [R]&lt;br /&gt;
    offset - string&lt;br /&gt;
    red - float&lt;br /&gt;
    x - float&lt;br /&gt;
    y - float&lt;br /&gt;
    z - float&lt;br /&gt;
    updateboard(int, int, int, int)&lt;br /&gt;
&lt;br /&gt;
  TUpdatePackage (TGraalVar):&lt;br /&gt;
    accounts - object [R]&lt;br /&gt;
    description - string [R]&lt;br /&gt;
    downloadcomplete - boolean [R]&lt;br /&gt;
    downloadedsize - integer [R]&lt;br /&gt;
    filecount - integer [R]&lt;br /&gt;
    filedownloadedsize - integer [R]&lt;br /&gt;
    filename - string [R]&lt;br /&gt;
    filetotalsize - integer [R]&lt;br /&gt;
    isuninstalled - boolean [R]&lt;br /&gt;
    lastdownloadfile - string [R]&lt;br /&gt;
    localversion - float [R]&lt;br /&gt;
    mode - string [R]&lt;br /&gt;
    name - string [R]&lt;br /&gt;
    parent - object [R]&lt;br /&gt;
    platform - string [R]&lt;br /&gt;
    protectoverwrite - boolean [R]&lt;br /&gt;
    totalsize - integer [R]&lt;br /&gt;
    usechecksum - boolean [R]&lt;br /&gt;
    version - float [R]&lt;br /&gt;
    reinstall() - returns boolean&lt;br /&gt;
    uninstall() - returns boolean&lt;br /&gt;
    update() - returns boolean&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=GUI Objects=&lt;br /&gt;
GUI Objects are currently well documented starting here [[Creation/Dev/Script/Client/GuiControl]].&lt;br /&gt;
&lt;br /&gt;
=Global=&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  $pref::audio::choosenvoicecodec - integer&lt;br /&gt;
  $pref::audio::microactivatebyvolume - boolean&lt;br /&gt;
  $pref::audio::microactivationlevel - integer&lt;br /&gt;
  $pref::audio::microinputdevice - integer&lt;br /&gt;
  $pref::audio::microon - boolean&lt;br /&gt;
  $pref::audio::microvolumefactor - integer&lt;br /&gt;
  $pref::audio::midivolume - integer&lt;br /&gt;
  $pref::audio::mp3volume - integer&lt;br /&gt;
  $pref::audio::radiovolume - integer&lt;br /&gt;
  $pref::audio::reversestereo - boolean&lt;br /&gt;
  $pref::audio::sfxvolume - integer&lt;br /&gt;
  $pref::audio::voicevolume - integer&lt;br /&gt;
  $pref::capture::allowbyscript - boolean [R]&lt;br /&gt;
  $pref::capture::area - string&lt;br /&gt;
  $pref::capture::audiobitrate - integer&lt;br /&gt;
  $pref::capture::disabledaynight - boolean&lt;br /&gt;
  $pref::capture::format - string&lt;br /&gt;
  $pref::capture::fps - integer&lt;br /&gt;
  $pref::capture::hideinterface - boolean&lt;br /&gt;
  $pref::capture::recordaudio - boolean&lt;br /&gt;
  $pref::capture::showmouse - boolean&lt;br /&gt;
  $pref::capture::size - string&lt;br /&gt;
  $pref::capture::videobitrate - integer&lt;br /&gt;
  $pref::graal::allowglobalpms - boolean&lt;br /&gt;
  $pref::graal::automapping - boolean&lt;br /&gt;
  $pref::graal::defaultfontname - string&lt;br /&gt;
  $pref::graal::defaultfontsize - integer&lt;br /&gt;
  $pref::graal::dontconnectlevels - boolean&lt;br /&gt;
  $pref::graal::dontloadlistheads - boolean&lt;br /&gt;
  $pref::graal::dontsavepasswords - boolean&lt;br /&gt;
  $pref::graal::dontsavepms - boolean&lt;br /&gt;
  $pref::graal::fixedport - boolean&lt;br /&gt;
  $pref::graal::fixedudpport - integer&lt;br /&gt;
  $pref::graal::language - string&lt;br /&gt;
  $pref::graal::limitnicknames - boolean&lt;br /&gt;
  $pref::graal::loadbuddylistfromserver - boolean&lt;br /&gt;
  $pref::graal::nicknamelimit - integer&lt;br /&gt;
  $pref::graal::nomassmessages - boolean&lt;br /&gt;
  $pref::graal::notoalls - boolean&lt;br /&gt;
  $pref::graal::noudp - boolean&lt;br /&gt;
  $pref::graal::showyourselfonbuddylists - boolean&lt;br /&gt;
  $pref::input::mousesensitivity - float&lt;br /&gt;
  $pref::interior::lockarrays - boolean&lt;br /&gt;
  $pref::video::defaultguistyle - string&lt;br /&gt;
  $pref::video::detailfactor - float&lt;br /&gt;
  $pref::video::fogdistance - float&lt;br /&gt;
  $pref::video::fullscreenmode - string&lt;br /&gt;
  $pref::video::resolution - integer&lt;br /&gt;
  $pref::video::screenshotformat - string&lt;br /&gt;
  $pref::video::visibledistance - float&lt;br /&gt;
  $pref::video::windowmode - string&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Fowlplay4</name></author>
	</entry>
	<entry>
		<id>https://graalonline.net/index.php?title=Creation/Dev/Script/Clientside_Functions&amp;diff=18124</id>
		<title>Creation/Dev/Script/Clientside Functions</title>
		<link rel="alternate" type="text/html" href="https://graalonline.net/index.php?title=Creation/Dev/Script/Clientside_Functions&amp;diff=18124"/>
		<updated>2011-04-09T19:33:45Z</updated>

		<summary type="html">&lt;p&gt;Fowlplay4: /* Functions */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Scripting Reference]]&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;2&amp;quot; width=&amp;quot;50%&amp;quot;&lt;br /&gt;
|[R]&lt;br /&gt;
| denotes it is read-only.&lt;br /&gt;
|-&lt;br /&gt;
|[3D]&lt;br /&gt;
| denotes it is a Graal3D function.&lt;br /&gt;
|-&lt;br /&gt;
|[opengl]&lt;br /&gt;
| denotes it is functional only in opengl mode.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Variables==&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;2&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
| '''Variable'''&lt;br /&gt;
|width=&amp;quot;100px&amp;quot;|'''Type'''&lt;br /&gt;
| '''Notes'''&lt;br /&gt;
|-&lt;br /&gt;
| allfeatures&lt;br /&gt;
| ''integer [R]''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| allplayerscount&lt;br /&gt;
| ''integer [R]''&lt;br /&gt;
| Returns the count of all players on your playerlist, including IRC bots.&lt;br /&gt;
|-&lt;br /&gt;
| allrenderobjecttypes&lt;br /&gt;
| ''integer [R]''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| allstats &lt;br /&gt;
| ''integer [R]''&lt;br /&gt;
| Used with showstats() in order to show all stats.&lt;br /&gt;
|-&lt;br /&gt;
| canspin&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| Returns true of false if the player has spin attack.&lt;br /&gt;
|-&lt;br /&gt;
| carriesblackstone&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| Returns whether the player is carrying a black stone.&lt;br /&gt;
|-&lt;br /&gt;
| carriesbush&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| Returns whether the player is carrying a bush.&lt;br /&gt;
|-&lt;br /&gt;
| carriesnpc&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| Returns whether the player is carrying an NPC&lt;br /&gt;
|-&lt;br /&gt;
| carriessign&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| Returns whether the player is carrying a sign.&lt;br /&gt;
|-&lt;br /&gt;
| carriesstone&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| Returns whether the player is carrying a stone.&lt;br /&gt;
|-&lt;br /&gt;
| carriesvase&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| Returns whether the player is carrying a vase.&lt;br /&gt;
|-&lt;br /&gt;
| downloadfile&lt;br /&gt;
| ''string [R]''&lt;br /&gt;
| Returns the currently downloaded file.&lt;br /&gt;
|-&lt;br /&gt;
| downloadpos&lt;br /&gt;
| ''integer [R]''&lt;br /&gt;
| Returns the position of the currently downloaded file.&lt;br /&gt;
|-&lt;br /&gt;
| downloadsize&lt;br /&gt;
| ''integer [R]''&lt;br /&gt;
| Returns the size of the currently downloaded file.&lt;br /&gt;
|-&lt;br /&gt;
| editingmission&lt;br /&gt;
| ''boolean''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| emoticonchar&lt;br /&gt;
| ''string [R]''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| focusx&lt;br /&gt;
| ''float [R]''&lt;br /&gt;
| Position of the camera in tile units.&lt;br /&gt;
|-&lt;br /&gt;
| focusy&lt;br /&gt;
| ''float [R]''&lt;br /&gt;
| Position of the camera in tile units.&lt;br /&gt;
|-&lt;br /&gt;
| ghostsnear&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| If a ghost(observer) is in the same level as the player.&lt;br /&gt;
|-&lt;br /&gt;
| graalplugincookie&lt;br /&gt;
| ''string [R]''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| graalversion&lt;br /&gt;
| ''float [R]''&lt;br /&gt;
| Version of Graal the player is using.&lt;br /&gt;
|-&lt;br /&gt;
| gravity&lt;br /&gt;
| ''float''&lt;br /&gt;
| The gravity value that effects how fast projectiles fall. It universally effects all projectiles.&lt;br /&gt;
|-&lt;br /&gt;
| installedlanguages&lt;br /&gt;
| ''string [R]''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| isapplicationactive&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| Is Graal window active?&lt;br /&gt;
|-&lt;br /&gt;
| iscarrying&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| Returns true of false if the player is carrying something.&lt;br /&gt;
|-&lt;br /&gt;
| isfocused&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| isgraal3d&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| isgraalplugin&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| isleader&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| Player was the first to enter the level.&lt;br /&gt;
|-&lt;br /&gt;
| isonmap&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| Player is on a map.&lt;br /&gt;
|-&lt;br /&gt;
| isopengl&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| Graal is in opengl mode.&lt;br /&gt;
|-&lt;br /&gt;
| isrecordingvideo&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| Player is currently recording(alt+6) Graal.&lt;br /&gt;
|-&lt;br /&gt;
| jpegquality&lt;br /&gt;
| ''integer''&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| isgraalplugin&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| lastdownloadfile&lt;br /&gt;
| ''string [R]''&lt;br /&gt;
| The last file downloaded.&lt;br /&gt;
|-&lt;br /&gt;
| leftmousebutton&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| If the left mouse button is pressed.&lt;br /&gt;
|-&lt;br /&gt;
| leftmousebuttonglobal&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| If the left mouse button is pressed. Returns whether mouse is in focus of GUIs or not.&lt;br /&gt;
|-&lt;br /&gt;
| levelorgx&lt;br /&gt;
| ''float [R]''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| levelorgy&lt;br /&gt;
| ''float [R]''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| lighteffectsenabled&lt;br /&gt;
| ''boolean''&lt;br /&gt;
| Whether the player has their lights enabled via options.&lt;br /&gt;
|-&lt;br /&gt;
| middlemousebutton&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| If the middle mouse button is pressed&lt;br /&gt;
|-&lt;br /&gt;
| middlemousebuttonglobal&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| If the middle mouse button is pressed. Returns whether mouse is in focus of GUIs or not.&lt;br /&gt;
|-&lt;br /&gt;
| mousebuttons &lt;br /&gt;
| ''integer [R]''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| mousebuttonsglobal&lt;br /&gt;
| ''integer [R]''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| mousepitch&lt;br /&gt;
| ''float [R] [3D]''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| mousescreenx &lt;br /&gt;
| ''integer''&lt;br /&gt;
| Position of the mouse in the Graal screen, in pixel units on the x-axis.&lt;br /&gt;
|-&lt;br /&gt;
| mousescreeny &lt;br /&gt;
| ''integer''&lt;br /&gt;
| Position of the mouse in the Graal screen, in pixel units on the y-axis.&lt;br /&gt;
|-&lt;br /&gt;
| mousewheeldelta&lt;br /&gt;
| ''integer [R]''&lt;br /&gt;
| How much the mouse wheel has been scrolled.&lt;br /&gt;
|-&lt;br /&gt;
| mousex&lt;br /&gt;
| ''float''&lt;br /&gt;
| Position of the mouse in the level, in tile units, on the x-axis.&lt;br /&gt;
|-&lt;br /&gt;
| mousey&lt;br /&gt;
| ''float''&lt;br /&gt;
| Position of the mouse in the level, in tile units, on the y-axis&lt;br /&gt;
|-&lt;br /&gt;
| mouseyaw&lt;br /&gt;
| ''float [R] [3D]''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| musiclen &lt;br /&gt;
| ''integer [R]''&lt;br /&gt;
| Length of current playing '''MP3'''&lt;br /&gt;
|-&lt;br /&gt;
| musicpos&lt;br /&gt;
| ''integer [R]''&lt;br /&gt;
| Position of current playing '''MP3'''&lt;br /&gt;
|-&lt;br /&gt;
| particleeffectsenabled&lt;br /&gt;
| ''boolean''&lt;br /&gt;
| If player has particles enabled in their options.&lt;br /&gt;
|-&lt;br /&gt;
| rightmousebutton &lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| If the right mouse button is pressed&lt;br /&gt;
|-&lt;br /&gt;
| rightmousebuttonglobal &lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| If the right mouse button is pressed. Returns whether mouse is in focus of GUIs or not.&lt;br /&gt;
|-&lt;br /&gt;
| screenheight&lt;br /&gt;
| ''integer [R]''&lt;br /&gt;
| Height of the Graal screen in pixel units.&lt;br /&gt;
|-&lt;br /&gt;
| screenwidth&lt;br /&gt;
| ''integer [R]''&lt;br /&gt;
| Width of the Graal screen in pixel units.&lt;br /&gt;
|-&lt;br /&gt;
| scriptedcontrols &lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| scriptedplayerlist&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| Whether the player has the scripted playerlist enabled.&lt;br /&gt;
|-&lt;br /&gt;
| scriptlogwritetoreadonly&lt;br /&gt;
| ''boolean''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| selectedlistplayers&lt;br /&gt;
| ''object''&lt;br /&gt;
| An object of all players selected on the playerlist.&lt;br /&gt;
|-&lt;br /&gt;
| selectedsword &lt;br /&gt;
| ''integer''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| selectedweapon &lt;br /&gt;
| ''integer''&lt;br /&gt;
| Index of the currently selected weapon.&lt;br /&gt;
|-&lt;br /&gt;
| servername&lt;br /&gt;
| ''string [R]''&lt;br /&gt;
| Name of the server.&lt;br /&gt;
|-&lt;br /&gt;
| serverstartconnect &lt;br /&gt;
| ''string''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| serverstartparams &lt;br /&gt;
| ''string''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| shotbybaddy&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| If the player is shot by a baddy(default) arrow.&lt;br /&gt;
|-&lt;br /&gt;
| shotbyplayer&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| If the player is shot by another players arrow.&lt;br /&gt;
|-&lt;br /&gt;
| showterraingrid&lt;br /&gt;
| ''boolean''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| spritesimage&lt;br /&gt;
| ''string''&lt;br /&gt;
| Filename of the currently set sprite image.&lt;br /&gt;
|-&lt;br /&gt;
| statusimage&lt;br /&gt;
| ''string''&lt;br /&gt;
| Filename of the currently set state image.&lt;br /&gt;
|-&lt;br /&gt;
| timevar&lt;br /&gt;
| ''integer [R].''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| timevar2&lt;br /&gt;
| ''float [R]''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| timevar3&lt;br /&gt;
| ''float [R] [3D]''&lt;br /&gt;
| Synchronized time which works on both server and client-side, precision is milliseconds.&lt;br /&gt;
|-&lt;br /&gt;
| wasshooted&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| If the player is shot by a default arrow.&lt;br /&gt;
|-&lt;br /&gt;
| waterheight&lt;br /&gt;
| ''float''&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| weapons&lt;br /&gt;
| ''object [R]''&lt;br /&gt;
| all the players weapons, this includes login inherited weapons.&lt;br /&gt;
|-&lt;br /&gt;
| weaponsenabled&lt;br /&gt;
| ''boolean''&lt;br /&gt;
| If the players weapons are enabled via disableweapons()/enableweapons().&lt;br /&gt;
|-&lt;br /&gt;
| weathereffectsenabled&lt;br /&gt;
| ''boolean''&lt;br /&gt;
| If weather is enabled in the players options.&lt;br /&gt;
|-&lt;br /&gt;
| worldclockstopped&lt;br /&gt;
| ''boolean''&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| worldhour &lt;br /&gt;
| ''integer''&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| worldminute &lt;br /&gt;
| ''float''&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| worldminutesofday &lt;br /&gt;
| ''float''&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| worldrealsecondsperday &lt;br /&gt;
| ''float''&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Functions=&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;2&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
| '''Variable'''&lt;br /&gt;
|width=&amp;quot;100px&amp;quot;|'''Type'''&lt;br /&gt;
| '''Notes'''&lt;br /&gt;
|-&lt;br /&gt;
| addcontrol(object)&lt;br /&gt;
|&lt;br /&gt;
| adds 'object' to the parent control.&lt;br /&gt;
|-&lt;br /&gt;
| addmaterialmapping(string, string)&lt;br /&gt;
| [3D]&lt;br /&gt;
| returns boolean.&lt;br /&gt;
|-&lt;br /&gt;
| addtiledef(string image, string prefix, int format)&lt;br /&gt;
| &lt;br /&gt;
| Adds a tileset definition with the supplied tileset image, level prefix and tileset format (0=pics1, 1=new world, 5=terrain).&lt;br /&gt;
|-&lt;br /&gt;
| addtiledef2(string image, string prefix, int x, int y)&lt;br /&gt;
| &lt;br /&gt;
| Overlays an image on the tileset with the supplied tileset image and level prefix. Parameters 'x' and 'y' represent the x and y position on the tileset of where to place the new image.&lt;br /&gt;
|-&lt;br /&gt;
| aindexof(float, array)&lt;br /&gt;
| &lt;br /&gt;
| Returns integer - the position of 'float' in the array.&lt;br /&gt;
|-&lt;br /&gt;
| arccos(float)&lt;br /&gt;
| &lt;br /&gt;
| Returns float - the arc cosine of 'float'.&lt;br /&gt;
|-&lt;br /&gt;
| arcsin(float)&lt;br /&gt;
| &lt;br /&gt;
| Returns float - the arc sine of 'float'.&lt;br /&gt;
|-&lt;br /&gt;
| attachplayertoobj(integer1, integer2)&lt;br /&gt;
| &lt;br /&gt;
| Attaches the player to the object with the matching ID where integer1 is the object type (currently only NPCs - 0) and integer2 is the ID of the desired object.&lt;br /&gt;
|-&lt;br /&gt;
| base64decode(string)&lt;br /&gt;
| &lt;br /&gt;
| Returns string - Decodes a base64 string.&lt;br /&gt;
|-&lt;br /&gt;
| base64encode(string)&lt;br /&gt;
| &lt;br /&gt;
| Returns string - Encodes string in to several characters of a 64 printable character set (A-Z, a-z, 0-9, + and /, while &amp;quot;=&amp;quot; is a special suffix code)&lt;br /&gt;
|-&lt;br /&gt;
| boxcontains(string, string)&lt;br /&gt;
| &lt;br /&gt;
| returns boolean.&lt;br /&gt;
|-&lt;br /&gt;
| boxcontainsvector(string, string)&lt;br /&gt;
| &lt;br /&gt;
| returns boolean&lt;br /&gt;
|-&lt;br /&gt;
| boxintersect(string, string)&lt;br /&gt;
| &lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| boxoverlaps(string, string)&lt;br /&gt;
| &lt;br /&gt;
| returns boolean&lt;br /&gt;
|-&lt;br /&gt;
| boxscale(string, string)&lt;br /&gt;
| &lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| callnpc(int index, string function)&lt;br /&gt;
| &lt;br /&gt;
| Calls a function from an NPC where 'index' is the NPC's index and 'function' is the function name.&lt;br /&gt;
|-&lt;br /&gt;
| callweapon(int index, string function)&lt;br /&gt;
| &lt;br /&gt;
| Calls a function from a weapon where 'index' is the weapon's index and 'function' is the function name.&lt;br /&gt;
|-&lt;br /&gt;
| castray({x,y,x}, {x,y,z}, string type)&lt;br /&gt;
| [3D]&lt;br /&gt;
| returns object - specify the start and end of the ray, and the object types (e.g. &amp;quot;staticts,terrain,interior&amp;quot;)&lt;br /&gt;
|-&lt;br /&gt;
| checksum(string)&lt;br /&gt;
| &lt;br /&gt;
| returns float&lt;br /&gt;
|-&lt;br /&gt;
| contains(string2, string1)&lt;br /&gt;
| &lt;br /&gt;
| returns boolean - True if string1 is contained within string2.&lt;br /&gt;
|-&lt;br /&gt;
| copystrings(string, string)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| cursoroff()&lt;br /&gt;
| [opengl]&lt;br /&gt;
| Disables the visible mouse cursor.&lt;br /&gt;
|-&lt;br /&gt;
| cursoron()&lt;br /&gt;
| [opengl]&lt;br /&gt;
| Enables the visible mouse cursor.&lt;br /&gt;
|-&lt;br /&gt;
| degtorad(float)&lt;br /&gt;
| &lt;br /&gt;
| returns float - Converts angle measurements of degrees to radians&lt;br /&gt;
|-&lt;br /&gt;
| detachplayer()&lt;br /&gt;
| &lt;br /&gt;
| Detaches a player from an attached object.&lt;br /&gt;
|-&lt;br /&gt;
| disabledefmovement()&lt;br /&gt;
| &lt;br /&gt;
| Disables the default movement system and controls(including weapons, sword, grab. Does not include Q-menu, pause, map...).&lt;br /&gt;
|-&lt;br /&gt;
| disablemap()&lt;br /&gt;
| &lt;br /&gt;
| Disables the default map (M).&lt;br /&gt;
|-&lt;br /&gt;
| disablepause()&lt;br /&gt;
| &lt;br /&gt;
| Disables the default pause (P).&lt;br /&gt;
|-&lt;br /&gt;
| disableselectweapons()&lt;br /&gt;
| &lt;br /&gt;
| Disables the default Q-menu (Q).&lt;br /&gt;
|-&lt;br /&gt;
| disableweapons()&lt;br /&gt;
| &lt;br /&gt;
| Disables the default sword (S) and weapons (D).&lt;br /&gt;
|-&lt;br /&gt;
| echo(string)&lt;br /&gt;
| &lt;br /&gt;
| echos 'string' to the debug window(F2).&lt;br /&gt;
|-&lt;br /&gt;
| enabledefmovement()&lt;br /&gt;
| &lt;br /&gt;
| Enables the default movement system.&lt;br /&gt;
|-&lt;br /&gt;
| [[Creation/Dev/Script/Functions/enablefeatures(int)|enablefeatures(int)]]&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| enablemap()&lt;br /&gt;
| &lt;br /&gt;
| Enables the default map system(M).&lt;br /&gt;
|-&lt;br /&gt;
| enablepause()&lt;br /&gt;
| &lt;br /&gt;
| Enables the default pause system(P).&lt;br /&gt;
|-&lt;br /&gt;
| enableselectweapons()&lt;br /&gt;
| &lt;br /&gt;
| Enables the default Q-menu(Q).&lt;br /&gt;
|-&lt;br /&gt;
| enableweapons()&lt;br /&gt;
| &lt;br /&gt;
| Enables the default sword(S) and weapons(D).&lt;br /&gt;
|-&lt;br /&gt;
| escapestring(string)&lt;br /&gt;
| &lt;br /&gt;
| returns string - adds \\ in front of &amp;quot;, ' and \\, and removes non-printable characters&lt;br /&gt;
|-&lt;br /&gt;
| explodebomb(integer)&lt;br /&gt;
| &lt;br /&gt;
| explodes the bomb with the id of 'integer'.&lt;br /&gt;
|-&lt;br /&gt;
| extractfilebase(string)&lt;br /&gt;
| &lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| extractfileext(string)&lt;br /&gt;
| &lt;br /&gt;
| Takes in a file name, and returns its extension. &lt;br /&gt;
|-&lt;br /&gt;
| extractfilepath(string)&lt;br /&gt;
| &lt;br /&gt;
| returns string &lt;br /&gt;
|-&lt;br /&gt;
| fileexists(string)&lt;br /&gt;
| &lt;br /&gt;
| returns boolean of whether the file 'str' exists in the players Graal/ directory(does not search subfolders).&lt;br /&gt;
|-&lt;br /&gt;
| filesize(string)&lt;br /&gt;
| &lt;br /&gt;
| Returns the size(int) of the file 'string' in the players Graal/ directory(does not search subfolders).&lt;br /&gt;
|-&lt;br /&gt;
| fileupdate(string)&lt;br /&gt;
| &lt;br /&gt;
| returns boolean&lt;br /&gt;
|-&lt;br /&gt;
| findani(string)&lt;br /&gt;
| &lt;br /&gt;
| returns object&lt;br /&gt;
|-&lt;br /&gt;
| findfiles(string, integer)&lt;br /&gt;
| &lt;br /&gt;
| returns object&lt;br /&gt;
|-&lt;br /&gt;
| findlevel(string)&lt;br /&gt;
| &lt;br /&gt;
| returns object&lt;br /&gt;
|-&lt;br /&gt;
| findnearestplayer(float1, float2)&lt;br /&gt;
| &lt;br /&gt;
| Returns the closest player's object relevant to float1 and float2.&lt;br /&gt;
|-&lt;br /&gt;
| findnearestplayers(float, float)&lt;br /&gt;
| &lt;br /&gt;
| Returns the closest players' object relevant to float1 and float2.&lt;br /&gt;
|-&lt;br /&gt;
| findnpcbyid(integer)&lt;br /&gt;
|&lt;br /&gt;
| Returns the NPC object with the ID of 'int'.&lt;br /&gt;
|-&lt;br /&gt;
| findpathinarray(obj1, obj2, obj3, obj4, obj5, int, int, int)&lt;br /&gt;
|&lt;br /&gt;
| Returns object - Simple path-finding: Obj1 being tiles that allow walking, Obj2 being tiles that don't allow walking, Obj3; tiles that shouldn't be allowed to walked on, Obj4; tiles that are able to be walked on, Obj5; tiles where we may stop. Integers are relevant to the startx, starty and maximum path length. - Arrays for allowed/non-allowed tiles are only checked if they aren't null.&lt;br /&gt;
|-&lt;br /&gt;
| findplayer(string)&lt;br /&gt;
|&lt;br /&gt;
| Returns the player object with the account equal to string.&lt;br /&gt;
|-&lt;br /&gt;
| findplayerbycommunityname(string)&lt;br /&gt;
|&lt;br /&gt;
| Returns the player object with the community name equal to string.&lt;br /&gt;
|-&lt;br /&gt;
| findplayerbyid(integer)&lt;br /&gt;
|&lt;br /&gt;
| Returns the player object with the ID equal to integer.&lt;br /&gt;
|-&lt;br /&gt;
| findweapon(string)&lt;br /&gt;
|&lt;br /&gt;
| Returns the weapon object with the name equal to string.&lt;br /&gt;
|-&lt;br /&gt;
| format(string, string, ...)&lt;br /&gt;
|&lt;br /&gt;
| See [[Creation/Dev/Output_Methods#format.28.29_function|format()]]. &lt;br /&gt;
|- &lt;br /&gt;
| format2(string, array)&lt;br /&gt;
| &lt;br /&gt;
| Like format(), except that this expects the format string and an array of variables instead of passing the variables as separate parameters.&lt;br /&gt;
|-&lt;br /&gt;
| freefileresources(string)&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| freezeplayer(float)&lt;br /&gt;
|&lt;br /&gt;
| Freezes the player for the number of seconds specified by float.&lt;br /&gt;
|-&lt;br /&gt;
| get3dobjectat(float, float, boolean)&lt;br /&gt;
| [3D]&lt;br /&gt;
| Gets the 3d object at the specified screen position, third parameter true if it should do box collision.&lt;br /&gt;
|-&lt;br /&gt;
| get3dobjectatmouse(boolean)&lt;br /&gt;
| [3D]&lt;br /&gt;
| Gets the 3d object at the mouse.  Parameter true if it should do box collision.&lt;br /&gt;
|-&lt;br /&gt;
| get3dobjectbyray(string, string)&lt;br /&gt;
| [3D]&lt;br /&gt;
| returns object&lt;br /&gt;
|-&lt;br /&gt;
| get3dobjectsbybox(string, string)&lt;br /&gt;
| [3D]&lt;br /&gt;
| 1st parameter defines the box {minx,miny,minz, maxx,maxy,maxz}.  Second parameter specifies the type of object to find (e.g. &amp;quot;staticts,terrain,interior&amp;quot;)&lt;br /&gt;
|-&lt;br /&gt;
| get3dscreenposition(string, boolean)&lt;br /&gt;
| [3D]&lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| getanglesfromvector({x, y, z})&lt;br /&gt;
|&lt;br /&gt;
| Returns an array that contains the angles the 3D vector {x, y, z} makes with the X-Y and X-Z axes.&lt;br /&gt;
|-&lt;br /&gt;
| getascii(string)&lt;br /&gt;
|&lt;br /&gt;
| Returns the [http://www.asciitable.com/ ascii] code for string.&lt;br /&gt;
|-&lt;br /&gt;
| getbasepackage()&lt;br /&gt;
|&lt;br /&gt;
| returns object&lt;br /&gt;
|-&lt;br /&gt;
| getboxcenter(string)&lt;br /&gt;
|&lt;br /&gt;
| Returns an array containing the center of a 3D box specified by string ({x0,y0,z0,x1,y1,z1,...}).&lt;br /&gt;
|-&lt;br /&gt;
| getdesktopresolution()&lt;br /&gt;
|&lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| getdisplaydevicelist()&lt;br /&gt;
|&lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| getdownloadedupdatepackagesize()&lt;br /&gt;
|&lt;br /&gt;
| Returns the size of the downloaded update package.&lt;br /&gt;
|-&lt;br /&gt;
| getdownloadingpackage()&lt;br /&gt;
|&lt;br /&gt;
| Returns a reference to current update package being downloaded.&lt;br /&gt;
|-&lt;br /&gt;
| getdownloadingpackagescount()&lt;br /&gt;
|&lt;br /&gt;
| Returns a count of the number of update packages to download.&lt;br /&gt;
|-&lt;br /&gt;
| getdropz(string)&lt;br /&gt;
|&lt;br /&gt;
| returns float&lt;br /&gt;
|-&lt;br /&gt;
| getExtension(string)&lt;br /&gt;
|&lt;br /&gt;
| This function is the same as extractFileExt().  Takes in a file name, and returns its extension.&lt;br /&gt;
|-&lt;br /&gt;
| getfilemodtime(string)&lt;br /&gt;
|&lt;br /&gt;
| Returns a timestamp of when the file was last modified (in unix time compatible to timevar2). This function accepts both exact file path and plain file name.&lt;br /&gt;
|-&lt;br /&gt;
| gethttprequest(string, integer, string)&lt;br /&gt;
| &lt;br /&gt;
| returns object (This function is the same as requestHttp())&lt;br /&gt;
|-&lt;br /&gt;
| getimgheight(string)&lt;br /&gt;
|&lt;br /&gt;
| Returns the height (in pixels) of the filename indicated by string.&lt;br /&gt;
|-&lt;br /&gt;
| getimgpixel(string, integer, integer)&lt;br /&gt;
|&lt;br /&gt;
| returns object&lt;br /&gt;
|-&lt;br /&gt;
| getimgwidth(string)&lt;br /&gt;
|&lt;br /&gt;
| Returns the width(in pixels) of the filename indicated by string.&lt;br /&gt;
|-&lt;br /&gt;
| getkeycode(string)&lt;br /&gt;
|&lt;br /&gt;
| Returns the keycode of the key indicated by string.  The keycode returned can be used in keydown2().&lt;br /&gt;
|-&lt;br /&gt;
| getloginaccountname()&lt;br /&gt;
|&lt;br /&gt;
| Presumably used for the login server.  Use player.account instead.&lt;br /&gt;
|-&lt;br /&gt;
| getmapx(string)&lt;br /&gt;
| &lt;br /&gt;
| Gets the x coordinate location in the gmap of the level indicated by string.  The top-left level starts at (0, 0).&lt;br /&gt;
|-&lt;br /&gt;
| getmapy(string)&lt;br /&gt;
|&lt;br /&gt;
| Gets the y coordinate location in the gmap of the level indicated by string.  The top-left level starts at (0, 0).&lt;br /&gt;
|-&lt;br /&gt;
| getmusicfilename()&lt;br /&gt;
|&lt;br /&gt;
| Returns the filename of the music currently playing.&lt;br /&gt;
|-&lt;br /&gt;
| getmusicstatus()&lt;br /&gt;
|&lt;br /&gt;
| Returns the status of the music currently playing.&lt;br /&gt;
|-&lt;br /&gt;
| getmusictags()&lt;br /&gt;
|&lt;br /&gt;
| Returns the tags of the music currently playing.  This function can be used to retrieve the title and artist info of the music.&lt;br /&gt;
|-&lt;br /&gt;
| getnearestplayer(float, float)&lt;br /&gt;
|&lt;br /&gt;
| Deprecated.  Use findnearestplayer() instead.&lt;br /&gt;
|-&lt;br /&gt;
| getnearestplayers(float, float)&lt;br /&gt;
|&lt;br /&gt;
| Deprecated.  Use findnearestplayers() instead.&lt;br /&gt;
|-&lt;br /&gt;
| getpackagesdownloadcomplete()&lt;br /&gt;
|&lt;br /&gt;
| Returns 'true' if the package downloads are complete.&lt;br /&gt;
|-&lt;br /&gt;
| getpackagesdownloaded()&lt;br /&gt;
|&lt;br /&gt;
| Returns 'true' if the most recent packages are already downloaded.&lt;br /&gt;
|-&lt;br /&gt;
| getplatform()&lt;br /&gt;
|&lt;br /&gt;
| Returns the platform that the player is using.  (i.e. windows, mac, or linux)&lt;br /&gt;
|-&lt;br /&gt;
| getresolutionlist(string)&lt;br /&gt;
|&lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| getservername()&lt;br /&gt;
|&lt;br /&gt;
| Returns the name of the server the player is currently connected to.&lt;br /&gt;
|-&lt;br /&gt;
| getstringkeys(string)&lt;br /&gt;
|&lt;br /&gt;
| Returns an array of the variables that begins with the supplied string.&lt;br /&gt;
|-&lt;br /&gt;
| getterraintexture(float, float)&lt;br /&gt;
|&lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| getterraintextureindex(float, float)&lt;br /&gt;
|&lt;br /&gt;
| returns integer&lt;br /&gt;
|-&lt;br /&gt;
| gettextheight(float zoom, string style, string font)&lt;br /&gt;
|&lt;br /&gt;
| returns integer - The height in pixels of the text with the given zoom, style and font.&lt;br /&gt;
|-&lt;br /&gt;
| gettextwidth(float zoom, string style, string font, string text)&lt;br /&gt;
|&lt;br /&gt;
| returns integer - The width of the text with the given zoom, style, font and text.&lt;br /&gt;
|-&lt;br /&gt;
| gettileset()&lt;br /&gt;
|&lt;br /&gt;
| returns string - the current main tileset (pics1.png, picso.png etc.)&lt;br /&gt;
|-&lt;br /&gt;
| gettilesettype()&lt;br /&gt;
|&lt;br /&gt;
| returns integer - the current tileset type (pics1.png:0, picso.png:5 etc.)&lt;br /&gt;
|-&lt;br /&gt;
| gettotalupdatepackagesize()&lt;br /&gt;
|&lt;br /&gt;
| returns integer - The total size of the update packages.&lt;br /&gt;
|-&lt;br /&gt;
| getupdatepackage(string name)&lt;br /&gt;
|&lt;br /&gt;
| returns object - A reference to the update package with the given name.&lt;br /&gt;
|-&lt;br /&gt;
| getvectorfromangles(float, float)&lt;br /&gt;
|&lt;br /&gt;
| returns string&lt;br /&gt;
|- &lt;br /&gt;
| getz(float, float)&lt;br /&gt;
|&lt;br /&gt;
| returns float&lt;br /&gt;
|-&lt;br /&gt;
| graalcontrolhasfocus(bool)&lt;br /&gt;
|&lt;br /&gt;
| returns boolean - Whether or not the graal control has focus.  Parameter says if it should also check if the chat bar has the focus&lt;br /&gt;
|-&lt;br /&gt;
| hideplayer(float time)&lt;br /&gt;
|&lt;br /&gt;
| Hides player for the specified amount of time.&lt;br /&gt;
|-&lt;br /&gt;
| hidesword(float time)&lt;br /&gt;
|&lt;br /&gt;
| Hides the player's sword for the specified amount of time.&lt;br /&gt;
|-&lt;br /&gt;
| hitnpc(int index, float halfhearts, float fromx, float fromy)&lt;br /&gt;
|&lt;br /&gt;
| Hit's npc with specified index causing the specified amount of halfhearts in damage. It also knocks back the npc based on the from X and Y coordinate passed to it.&lt;br /&gt;
|-&lt;br /&gt;
| hitobjects(float power, float x, float y)&lt;br /&gt;
|&lt;br /&gt;
| Hurts all the npcs with the specified power on the position passed to it.&lt;br /&gt;
|-&lt;br /&gt;
| hitplayer(int index, float halfhearts, float fromx, float fromy)&lt;br /&gt;
|&lt;br /&gt;
| Hit's player with specified index causing the specified amount of halfhearts in damage. It also knocks back the player based on the from X and Y coordinate passed to it. Use 0 as the index to hit your own player.&lt;br /&gt;
|-&lt;br /&gt;
| isadminguild(str guildname)&lt;br /&gt;
| &lt;br /&gt;
| returns boolean - If the passed guildname is an admin guild or not.&lt;br /&gt;
|-&lt;br /&gt;
| isclassloaded(str classname)&lt;br /&gt;
|&lt;br /&gt;
| returns boolean - If the passed classname is loaded for the client.&lt;br /&gt;
|-&lt;br /&gt;
| iscursoron()&lt;br /&gt;
|&lt;br /&gt;
| returns boolean - If the cursor is on or not.&lt;br /&gt;
|-&lt;br /&gt;
| isdevicefullscreenonly(str device)&lt;br /&gt;
|&lt;br /&gt;
| returns boolean - If the device is full screen only or not.&lt;br /&gt;
|-&lt;br /&gt;
| isdownloading(str filename)&lt;br /&gt;
|&lt;br /&gt;
| returns boolean - If a file is currently downloaded or requested from the server.&lt;br /&gt;
|-&lt;br /&gt;
| isdownloadingfiles()&lt;br /&gt;
|&lt;br /&gt;
| returns boolean - checks if Graal is currently downloading or requesting files from the server.&lt;br /&gt;
|-&lt;br /&gt;
| isfullscreenmode()&lt;br /&gt;
|&lt;br /&gt;
| returns boolean - checks if Graal is currently in fullscreen mode.&lt;br /&gt;
|-&lt;br /&gt;
| isimgrectangletransparent(str, int, int, int, int)&lt;br /&gt;
| &lt;br /&gt;
| returns boolean&lt;br /&gt;
|-&lt;br /&gt;
| ismusicplaying()&lt;br /&gt;
| &lt;br /&gt;
| returns boolean&lt;br /&gt;
|-&lt;br /&gt;
| isobject(str)&lt;br /&gt;
| &lt;br /&gt;
| returns boolean&lt;br /&gt;
|-&lt;br /&gt;
| issoundplaying(str)&lt;br /&gt;
| &lt;br /&gt;
| returns boolean&lt;br /&gt;
|-&lt;br /&gt;
| keydown(int)&lt;br /&gt;
| &lt;br /&gt;
| returns boolean&lt;br /&gt;
|-&lt;br /&gt;
| keydown2(int, bool)&lt;br /&gt;
| &lt;br /&gt;
| returns boolean&lt;br /&gt;
|-&lt;br /&gt;
| keydown2global(int, bool)&lt;br /&gt;
| &lt;br /&gt;
| returns boolean&lt;br /&gt;
|-&lt;br /&gt;
| keydownglobal(int)&lt;br /&gt;
| &lt;br /&gt;
| returns boolean&lt;br /&gt;
|-&lt;br /&gt;
| keyname(int)&lt;br /&gt;
| &lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| lay2(str, float, float)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| lightscene()&lt;br /&gt;
| &lt;br /&gt;
| returns boolean&lt;br /&gt;
|-&lt;br /&gt;
| loadclass(str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| loadmap(str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| loadtranslation(str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| lowercase(str)&lt;br /&gt;
| &lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| ltmfs(bool)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| ltmmax(float, float)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| ltmmin(float, float)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| makescreenshot2(str, int, float, float, float, int, int)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| matrixcreate(str, str)&lt;br /&gt;
| &lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| matrixcreatefromeuler(str)&lt;br /&gt;
| &lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| matrixmulpoint(str, str)&lt;br /&gt;
| &lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| matrixmultiply(str, str)&lt;br /&gt;
| &lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| matrixmulvector(str, str)&lt;br /&gt;
| &lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| md5(str)&lt;br /&gt;
| &lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| noplayerkilling()&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| onwall(float, float)&lt;br /&gt;
| &lt;br /&gt;
| returns boolean&lt;br /&gt;
|-&lt;br /&gt;
| onwall2(float, float, float, float)&lt;br /&gt;
| &lt;br /&gt;
| returns boolean&lt;br /&gt;
|-&lt;br /&gt;
| onwater(float, float)&lt;br /&gt;
| &lt;br /&gt;
| returns boolean&lt;br /&gt;
|-&lt;br /&gt;
| onwater2(float, float, float, float)&lt;br /&gt;
| &lt;br /&gt;
| returns boolean&lt;br /&gt;
|-&lt;br /&gt;
| opengraalurl(str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| openurl(str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| openurl2(str, int, int)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| play(str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| play2(str, float, float, float)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| play3d(str, bool, str, str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| playlooped(str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| playlooped2(str, float, float, float)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| popdialog()&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| pushdialog(obj)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| putleaps(int, float, float)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| radtodeg(float)&lt;br /&gt;
| &lt;br /&gt;
| returns float&lt;br /&gt;
|-&lt;br /&gt;
| randomstring(str)&lt;br /&gt;
| &lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| removetiledefs(str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| replaceani(str, str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| requestfiledeletion(str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| requestfilerename(str, str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| requestfilesmove(str, str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| requesthttp(str, int, str)&lt;br /&gt;
| &lt;br /&gt;
| returns object&lt;br /&gt;
|-&lt;br /&gt;
| requesttext(str, str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| requesturl(str)&lt;br /&gt;
| &lt;br /&gt;
| returns object&lt;br /&gt;
|-&lt;br /&gt;
| resetfocus()&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| rotationadd(str, str)&lt;br /&gt;
| &lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| rotationaddeuler(str, str)&lt;br /&gt;
| &lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| rotationfromeuler(str)&lt;br /&gt;
| &lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| rotationsub(str, str)&lt;br /&gt;
| &lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| rotationtoeuler(str)&lt;br /&gt;
| &lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| rungarbagecollector()&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| savelog(str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| say(int)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| say2(str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| screenx(float, float)&lt;br /&gt;
| &lt;br /&gt;
| returns integer&lt;br /&gt;
|-&lt;br /&gt;
| screeny(float, float)&lt;br /&gt;
| &lt;br /&gt;
| returns integer&lt;br /&gt;
|-&lt;br /&gt;
| selectfilefordownload(str)&lt;br /&gt;
| &lt;br /&gt;
| opens the select&lt;br /&gt;
|-&lt;br /&gt;
| selectfileforupload()&lt;br /&gt;
| &lt;br /&gt;
| opens the select&lt;br /&gt;
|-&lt;br /&gt;
| sendrpgmessage(str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| sendtext(str, str, params...)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| sendtorc(str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| serverwarp(str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| setani(str, str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| setbeltcolor(str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| setcoatcolor(str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| setcontentcontrol(obj)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| setcursor2(str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| seteffect(float, float, float, float)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| setfocus(float, float)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| setfogcolors(obj)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| setgender(str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| sethead(str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| setinteriorrendermode(int)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| setletters(str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| setmap(str, str, float, float)&lt;br /&gt;
| &lt;br /&gt;
| sets a text map (you can see the tiles of other levels but not the npcs), parameters are text file with level names, the map image (not used anymore), default x and y for the head icons; use gmaps if possible instead of this&lt;br /&gt;
|-&lt;br /&gt;
| setminimap(str, str, float, float)&lt;br /&gt;
| &lt;br /&gt;
| parameters are a text file with level names, the image, default x and y; use gmaps if possible instead of this&lt;br /&gt;
|-&lt;br /&gt;
| setmusicvolume(float, float)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| setplayerdir(str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| setshield(str, int)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| setshoecolor(str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| setshootparams(str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| setskincolor(str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| setskybandcolors(obj)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| setskybandsizes(obj)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| setsleevecolor(str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| setspritesimage(str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| setstatusimage(str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| setsuncolors(obj)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| setsword(str, int)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| setterrainrendermode(int)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| showstats(int)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| spyfire(int, int)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| startrecordvideo()&lt;br /&gt;
| &lt;br /&gt;
| returns boolean&lt;br /&gt;
|-&lt;br /&gt;
| stopmidi()&lt;br /&gt;
| &lt;br /&gt;
| same as stopmusic(), kept for compatibility&lt;br /&gt;
|-&lt;br /&gt;
| stopmusic()&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| stoprecordvideo()&lt;br /&gt;
| &lt;br /&gt;
| returns boolean&lt;br /&gt;
|-&lt;br /&gt;
| stopsound(str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| strcmp(str, str)&lt;br /&gt;
| &lt;br /&gt;
| returns integer&lt;br /&gt;
|-&lt;br /&gt;
| strequals(str, str)&lt;br /&gt;
| &lt;br /&gt;
| returns boolean&lt;br /&gt;
|-&lt;br /&gt;
| switchtoopengl()&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| synctimeofday(float, float)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| takeplayercarry()&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| takeplayerhorse()&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| testplayer(float, float)&lt;br /&gt;
| &lt;br /&gt;
| returns integer&lt;br /&gt;
|-&lt;br /&gt;
| trace(str)&lt;br /&gt;
| &lt;br /&gt;
| same as echo()&lt;br /&gt;
|-&lt;br /&gt;
| triggeraction(float, float, str, params...)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| triggerserver(str, str)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| update3dterrain(float, float, float, float)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| updateboard(int, int, int, int)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| updateterrain()&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| updatevisibledistance()&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| uploadfile(str)&lt;br /&gt;
| &lt;br /&gt;
| uploads a file, you must provide the full path provided by a onDropFiles() event, also this will only work if the scripted RC has currently a file browser window open; once the file is uploaded an onFilesUploaded event will be invoked&lt;br /&gt;
|-&lt;br /&gt;
| uppercase(str)&lt;br /&gt;
| &lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| vectoradd(str, str)&lt;br /&gt;
| &lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| vectorcross(str, str)&lt;br /&gt;
| &lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| vectordist(str, str)&lt;br /&gt;
| &lt;br /&gt;
| returns float&lt;br /&gt;
|-&lt;br /&gt;
| vectordot(str, str)&lt;br /&gt;
| &lt;br /&gt;
| returns float&lt;br /&gt;
|-&lt;br /&gt;
| vectorlen(str)&lt;br /&gt;
| &lt;br /&gt;
| returns float&lt;br /&gt;
|-&lt;br /&gt;
| vectornormalize(str)&lt;br /&gt;
| &lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| vectororthobasis(str)&lt;br /&gt;
| &lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| vectorscale(str, float)&lt;br /&gt;
| &lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| vectorsub(str, str)&lt;br /&gt;
| &lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| worldx(float, float)&lt;br /&gt;
| &lt;br /&gt;
| returns float&lt;br /&gt;
|-&lt;br /&gt;
| worldy(float, float)&lt;br /&gt;
| &lt;br /&gt;
| returns float&lt;br /&gt;
|-&lt;br /&gt;
| wraptext(int, str, str)&lt;br /&gt;
| &lt;br /&gt;
| returns object&lt;br /&gt;
|-&lt;br /&gt;
| wraptext2(int, float, str, str)&lt;br /&gt;
| &lt;br /&gt;
| returns object&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Objects=&lt;br /&gt;
&amp;lt;pre&amp;gt;TGraalVar:&lt;br /&gt;
  initialized - boolean [R]&lt;br /&gt;
  ispaused - boolean - suspends the script if set to paused&lt;br /&gt;
  joinedclasses - object&lt;br /&gt;
  maxlooplimit - integer - sets the maxmimum number of loop iterations, default 10000; the allowed range for this can vary from server to server&lt;br /&gt;
  name - string&lt;br /&gt;
  scripterrors - object [R] - gives the list of script errors which were reported for this object&lt;br /&gt;
  scriptlogmissingfunctions - boolean&lt;br /&gt;
  timeout - float&lt;br /&gt;
  addarray(obj) - adds another array to this variable&lt;br /&gt;
  addarraymember(str) - returns object - adds an array member with a name and returns the new array member&lt;br /&gt;
  addnamedstring(str, str) - returns object&lt;br /&gt;
  cancelevents(str) - removes all previously scheduled events (scheduleevent) of the specified event name&lt;br /&gt;
  catchevent(str, str, str) - adds an event handler for the specified object and event, third parameter is the function which receives the event (first parameter of the event will be the object for which the event occured)&lt;br /&gt;
  clearemptyvars() - removes empty subvariables from memory&lt;br /&gt;
  clearvars() - clears all dynamic variables&lt;br /&gt;
  copyfrom(obj) - copies all variables and array values from another object, doesn't work for protected variables like players though&lt;br /&gt;
  getarraymember(str) - returns object - searches for an array member by name&lt;br /&gt;
  getdynamicvarnames() - returns object - gets the names of all dynamic (not built-in) subvariables of this object&lt;br /&gt;
  geteditvarnames() - returns object - gets the names of all dynamic variables which can be modified&lt;br /&gt;
  getfunctions() - returns object - gets the names of all functions of the object as array, also each entry has subvariables which give more information about the function (&amp;quot;parameters&amp;quot;, &amp;quot;description&amp;quot;, &amp;quot;scope&amp;quot;)&lt;br /&gt;
  getstaticvarnames() - returns object - gets the names of all static (built-in) subvariables of this object&lt;br /&gt;
  getvarnames() - returns object - gets the names of all subvariables of this object&lt;br /&gt;
  hasfunction(str) - returns boolean - checks if the object has a function of the specified name (also checks if it can be called by the current script object)&lt;br /&gt;
  ignoreevent(str, str) - lets the object ignore an event (second parameter) of the specified object name&lt;br /&gt;
  ignoreevents(str) - lets the object ignore all previously catched events of the specified object name&lt;br /&gt;
  insertarray(int, obj) - inserts an array at the specified index&lt;br /&gt;
  isinclass(str) - returns boolean - checks if the object has joined the specified class&lt;br /&gt;
  join(str) - lets the object join a class and inherit all functions and event handlers of that class&lt;br /&gt;
  leave(str) - leaves a previously joined class&lt;br /&gt;
  loadfolder(str, int) - loads the content of a folder into the variable, you must specify the folder name and pattern (e.g. &amp;quot;levels/bodies/*.png&amp;quot;) and if it should be recursive&lt;br /&gt;
  loadini(str) - loads an .ini file into the variable, you can access variables by obj.inisection.varname&lt;br /&gt;
  loadlines(str) - loads a file and adds it line by line to the variable (as array)&lt;br /&gt;
  loadstring(str) - loads the content of a file into the variable&lt;br /&gt;
  loadvars(str) - loads the variables from a file where each line has the format varname=value&lt;br /&gt;
  loadvarsfromarray(obj) - loads the variables from a string list of the format varname=value&lt;br /&gt;
  loadxml(str)&lt;br /&gt;
  loadxmlfromstring(str)&lt;br /&gt;
  objecttype() - returns string - returns the object type, which can be TGraalVar, TProjectile etc.&lt;br /&gt;
  savelines(str, int) - saves the array line by line into a file, the second parameter is the save mode (0 - overwrite, 1 - append)&lt;br /&gt;
  savestring(str, int) - saves the value as string into a file, the second parameter is the save mode (0 - overwrite, 1 - append)&lt;br /&gt;
  savevars(str, int) - saves the subvars in the format varname=value into a file, the second parameter is the save mode (0 - overwrite, 1 - append)&lt;br /&gt;
  savevarstoarray(bool) - returns object - saves the subvars in the format varname=value into an array, you must specify if it should be sorted&lt;br /&gt;
  savexml(str, int)&lt;br /&gt;
  savexmltostring() - returns string&lt;br /&gt;
  scheduleevent(float, str, params...) - returns object - invokes an event (onEventname) after the specified delay (in seconds), second parameter is the event name, followed by the parameters&lt;br /&gt;
  settimer(float) - invokes an onTimeout event after the specified time, similar to 'timeout=value'&lt;br /&gt;
  sortascending() - sorts the array in ascending order (smallest value first)&lt;br /&gt;
  sortbyvalue(str, str, bool) - sorts an array, specify the variable of the array members which is compared, also the variable type and if it should be sorted ascending; variable type can be &amp;quot;string&amp;quot;, otherwise it is sorted by floating point value&lt;br /&gt;
  sortdescending() - sorts the array in descending order (highest value first)&lt;br /&gt;
  subarray2(int, int, int, int) - returns object - extracts a two-dimensional array, specify startpos1, length1, startpos2, length2&lt;br /&gt;
  timershow() - lets an npc show the current timeout variable, deprecated&lt;br /&gt;
  trigger(str, params...) - invokes an event on the object (onEventname) with the specified event name and parameters, doesn't interrupt the current script&lt;br /&gt;
&lt;br /&gt;
  ActionMap (TGraalVar):&lt;br /&gt;
    bind(str, str, str)&lt;br /&gt;
    getbinding(str) - returns string&lt;br /&gt;
    getcommand(str, str) - returns string&lt;br /&gt;
    load() - returns boolean&lt;br /&gt;
    pop()&lt;br /&gt;
    push()&lt;br /&gt;
    save()&lt;br /&gt;
    unbind(str, str)&lt;br /&gt;
&lt;br /&gt;
  DTSAniThread (TGraalVar):&lt;br /&gt;
    aniindex - integer [R]&lt;br /&gt;
    atend - boolean [R]&lt;br /&gt;
    attack - boolean&lt;br /&gt;
    endpos - float&lt;br /&gt;
    hold - boolean&lt;br /&gt;
    position - float&lt;br /&gt;
    sequence - string&lt;br /&gt;
    startpos - float&lt;br /&gt;
    state - string&lt;br /&gt;
    timescale - float&lt;br /&gt;
    transtitiontime - float&lt;br /&gt;
    isintransition() - returns boolean&lt;br /&gt;
    play()&lt;br /&gt;
&lt;br /&gt;
  GameMovementInterpolate (TGraalVar):&lt;br /&gt;
    rigid - object [R]&lt;br /&gt;
    applyimpulse(str, str)&lt;br /&gt;
&lt;br /&gt;
    GameMovementRigid (GameMovementInterpolate):&lt;br /&gt;
      addrigidmove(str, str) - adds torque and force vector&lt;br /&gt;
&lt;br /&gt;
  GameMovementList (TGraalVar):&lt;br /&gt;
    finishmoves()&lt;br /&gt;
    move3d(str, float, int)&lt;br /&gt;
&lt;br /&gt;
  GameShape (TGraalVar):&lt;br /&gt;
    pixelshader - string&lt;br /&gt;
    vertexshader - string&lt;br /&gt;
&lt;br /&gt;
    GameShapeDIF (GameShape):&lt;br /&gt;
      activatelight(str)&lt;br /&gt;
      deactivatelight(str)&lt;br /&gt;
&lt;br /&gt;
    GameShapeDTS (GameShape):&lt;br /&gt;
      materiallist - object [R]&lt;br /&gt;
      materials - object [R]&lt;br /&gt;
      forceanimations() - starts to animate the object to make sure the animations are the wished start position&lt;br /&gt;
      getanimation(int) - returns object&lt;br /&gt;
      listnodes() - returns object&lt;br /&gt;
      pauseanimation(int)&lt;br /&gt;
      playanimation(int, str, int) - returns object - specify animation slot, animation name and flags (1 - hold, 2 - atend, 4 - attackanimation)&lt;br /&gt;
      playanimation2(int, str, int, float, float, float, float) - returns object - specify animation slot, animation name, flags, startpos, endpos, timescale, transitiontime&lt;br /&gt;
      stopanimation(int)&lt;br /&gt;
&lt;br /&gt;
    GameShapeFT (GameShape):&lt;br /&gt;
      levels - integer&lt;br /&gt;
      seed - integer&lt;br /&gt;
&lt;br /&gt;
  MovieClip (TGraalVar):&lt;br /&gt;
    _level0 - object [R]&lt;br /&gt;
    _parent - object [R]&lt;br /&gt;
    _root - object [R]&lt;br /&gt;
    _visible - boolean&lt;br /&gt;
    _x - float&lt;br /&gt;
    _xmouse - float [R]&lt;br /&gt;
    _y - float&lt;br /&gt;
    _ymouse - float [R]&lt;br /&gt;
    alpha - float&lt;br /&gt;
    blue - float&lt;br /&gt;
    frame - integer&lt;br /&gt;
    framecount - integer [R]&lt;br /&gt;
    green - float&lt;br /&gt;
    height - float [R]&lt;br /&gt;
    layernames - object [R]&lt;br /&gt;
    looping - boolean&lt;br /&gt;
    math - object [R]&lt;br /&gt;
    objectname - string&lt;br /&gt;
    objectnames - object [R]&lt;br /&gt;
    playing - boolean&lt;br /&gt;
    red - float&lt;br /&gt;
    width - float [R]&lt;br /&gt;
    attachmovie(params...) - returns object - parameters are the movie clip to copy, the name of the new clip, and the layer&lt;br /&gt;
    createemptymovieclip(str, int) - returns object - parameters are the the name of the new clip and the layer&lt;br /&gt;
    duplicatemovieclip(params...) - returns object&lt;br /&gt;
    getbytesloaded() - returns integer&lt;br /&gt;
    getbytestotal() - returns integer&lt;br /&gt;
    getcolor() - returns string&lt;br /&gt;
    getdepth() - returns integer&lt;br /&gt;
    getlayer(str) - returns object&lt;br /&gt;
    getproperty(int) - returns string&lt;br /&gt;
    gotoandplay(params...) - specify the frame name or frame number&lt;br /&gt;
    gotoandstop(params...) - specify the frame name or frame number&lt;br /&gt;
    hittest(params...) - returns boolean&lt;br /&gt;
    nextframe()&lt;br /&gt;
    play()&lt;br /&gt;
    prevframe()&lt;br /&gt;
    removelayer(str)&lt;br /&gt;
    removemovieclip()&lt;br /&gt;
    setcolor(str)&lt;br /&gt;
    setproperty(int, str)&lt;br /&gt;
    stop()&lt;br /&gt;
    swapdepths(str)&lt;br /&gt;
    unloadmovie() - same as removeMovieClip()&lt;br /&gt;
&lt;br /&gt;
  MRandomGenerator (TGraalVar):&lt;br /&gt;
    seed - integer&lt;br /&gt;
    destroy()&lt;br /&gt;
    randfloat() - returns float - a random floating point number between 0 and 1&lt;br /&gt;
    randint() - returns integer - a random integer number between 0 and 2147483647, use the modulus operator to generate a value in a smaller range (e.g. obj.randInt()%10 to get a value between 0 and 9)&lt;br /&gt;
&lt;br /&gt;
    MRandomLCG (MRandomGenerator):&lt;br /&gt;
&lt;br /&gt;
    MRandomR250 (MRandomGenerator):&lt;br /&gt;
&lt;br /&gt;
  SimObject (TGraalVar):&lt;br /&gt;
&lt;br /&gt;
    SceneObject (SimObject):&lt;br /&gt;
      eulerrotation - string&lt;br /&gt;
      forwardvector - string&lt;br /&gt;
      objectbox - string [R]&lt;br /&gt;
      position - string&lt;br /&gt;
      renderposition - string&lt;br /&gt;
      rightvector - string&lt;br /&gt;
      rotation - string&lt;br /&gt;
      scale - string&lt;br /&gt;
      scaledobjectbox - string [R]&lt;br /&gt;
      transform - string&lt;br /&gt;
      upvector - string&lt;br /&gt;
      worldbox - string [R]&lt;br /&gt;
      worldboxcenter - string [R]&lt;br /&gt;
      x - float&lt;br /&gt;
      y - float&lt;br /&gt;
      z - float&lt;br /&gt;
      getforwardvector() - returns string&lt;br /&gt;
      getobjectbox() - returns string&lt;br /&gt;
      getposition() - returns string&lt;br /&gt;
      getrightvector() - returns string&lt;br /&gt;
      getscale() - returns string&lt;br /&gt;
      gettransform() - returns string&lt;br /&gt;
      getupvector() - returns string&lt;br /&gt;
      getworldbox() - returns string&lt;br /&gt;
      getworldboxcenter() - returns string&lt;br /&gt;
      light()&lt;br /&gt;
      setforwardvector(str)&lt;br /&gt;
      setposition(str)&lt;br /&gt;
      setrightvector(str)&lt;br /&gt;
      setscale(str)&lt;br /&gt;
      settransform(str)&lt;br /&gt;
      setupvector(str)&lt;br /&gt;
&lt;br /&gt;
      fxSunLight (SceneObject):&lt;br /&gt;
        animazimuth - boolean&lt;br /&gt;
        animbrightness - boolean&lt;br /&gt;
        animcolour - boolean&lt;br /&gt;
        animelevation - boolean&lt;br /&gt;
        animrotation - boolean&lt;br /&gt;
        animsize - boolean&lt;br /&gt;
        azimuthkeys - string&lt;br /&gt;
        azimuthtime - float&lt;br /&gt;
        blendmode - integer&lt;br /&gt;
        bluekeys - string&lt;br /&gt;
        brightness - float&lt;br /&gt;
        brightnesskeys - string&lt;br /&gt;
        brightnesstime - float&lt;br /&gt;
        colour - string&lt;br /&gt;
        colourtime - float&lt;br /&gt;
        elevationkeys - string&lt;br /&gt;
        elevationtime - float&lt;br /&gt;
        enable - boolean&lt;br /&gt;
        fadetime - float&lt;br /&gt;
        flaresize - float&lt;br /&gt;
        flaretp - boolean&lt;br /&gt;
        greenkeys - string&lt;br /&gt;
        lerpazimuth - boolean&lt;br /&gt;
        lerpbrightness - boolean&lt;br /&gt;
        lerpcolour - boolean&lt;br /&gt;
        lerpelevation - boolean&lt;br /&gt;
        lerprotation - boolean&lt;br /&gt;
        lerpsize - boolean&lt;br /&gt;
        linkflaresize - boolean&lt;br /&gt;
        localflarebitmap - string&lt;br /&gt;
        maxazimuth - float&lt;br /&gt;
        maxbrightness - float&lt;br /&gt;
        maxcolour - string&lt;br /&gt;
        maxelevation - float&lt;br /&gt;
        maxrotation - float&lt;br /&gt;
        maxsize - float&lt;br /&gt;
        minazimuth - float&lt;br /&gt;
        minbrightness - float&lt;br /&gt;
        mincolour - string&lt;br /&gt;
        minelevation - float&lt;br /&gt;
        minrotation - float&lt;br /&gt;
        minsize - float&lt;br /&gt;
        redkeys - string&lt;br /&gt;
        remoteflarebitmap - string&lt;br /&gt;
        rotationkeys - string&lt;br /&gt;
        rotationtime - float&lt;br /&gt;
        singlecolourkeys - boolean&lt;br /&gt;
        sizekeys - string&lt;br /&gt;
        sizetime - float&lt;br /&gt;
        sunazimuth - float&lt;br /&gt;
        sunelevation - float&lt;br /&gt;
        reset()&lt;br /&gt;
&lt;br /&gt;
      GameObject (SceneObject):&lt;br /&gt;
        alpha - float&lt;br /&gt;
        attachedtoobject - object&lt;br /&gt;
        attrobjects - object [R]&lt;br /&gt;
        chat - string&lt;br /&gt;
        collision - boolean&lt;br /&gt;
        iseditorobject - boolean&lt;br /&gt;
        liquidheight - float [R]&lt;br /&gt;
        liquidtype - string [R]&lt;br /&gt;
        movetype - string&lt;br /&gt;
        nick - string - same as nickname&lt;br /&gt;
        nickcolor - string&lt;br /&gt;
        nickname - string&lt;br /&gt;
        position - string&lt;br /&gt;
        scaledshapebox - string [R]&lt;br /&gt;
        shadow - boolean&lt;br /&gt;
        shape - string&lt;br /&gt;
        shapebox - string [R]&lt;br /&gt;
        showterrain - boolean&lt;br /&gt;
        skin - string&lt;br /&gt;
        solid - boolean&lt;br /&gt;
        transform - string&lt;br /&gt;
        velocity - string&lt;br /&gt;
        watercoverage - float [R]&lt;br /&gt;
        checkcollision(str, str) - returns object&lt;br /&gt;
        checkcollisionbybox(str, str, str) - returns object&lt;br /&gt;
        clippolygons(str) - returns object&lt;br /&gt;
        findimg(int) - returns object&lt;br /&gt;
        getcontrollingclient() - returns object&lt;br /&gt;
        getcontrollingobject() - returns object&lt;br /&gt;
        getdropz(str) - returns float&lt;br /&gt;
        getinteriorobject() - returns object&lt;br /&gt;
        getmountedobject(int) - returns object&lt;br /&gt;
        getmountedobjectcount() - returns integer&lt;br /&gt;
        getmountedobjectnode(int) - returns integer&lt;br /&gt;
        getmountnodeobject(int) - returns object&lt;br /&gt;
        getmountposition(int) - returns string&lt;br /&gt;
        getmounttransform(int) - returns string&lt;br /&gt;
        getnodeposition(str) - returns string&lt;br /&gt;
        getnodetransform(str) - returns string&lt;br /&gt;
        getobjectmount() - returns object&lt;br /&gt;
        hideimg(int)&lt;br /&gt;
        hideimgs(int, int)&lt;br /&gt;
        isdrawn() - returns boolean&lt;br /&gt;
        isininterior() - returns boolean&lt;br /&gt;
        ismounted() - returns boolean&lt;br /&gt;
        mountobject(obj, int) - returns boolean&lt;br /&gt;
        setdirection(str)&lt;br /&gt;
        unmount()&lt;br /&gt;
        unmountobject(obj) - returns boolean&lt;br /&gt;
&lt;br /&gt;
        Camera (GameObject):&lt;br /&gt;
          cameramode - string&lt;br /&gt;
          eulerrotation - string&lt;br /&gt;
          followattachedobject - object&lt;br /&gt;
          lookatposition - string&lt;br /&gt;
          lookvector - string&lt;br /&gt;
          updateposition()&lt;br /&gt;
&lt;br /&gt;
        DynamicShapeReplicator (GameObject):&lt;br /&gt;
          aligntoterrain - boolean&lt;br /&gt;
          allowedterrainslope - integer&lt;br /&gt;
          allowoninteriors - boolean&lt;br /&gt;
          allowonstatics - boolean&lt;br /&gt;
          allowonterrain - boolean&lt;br /&gt;
          allowonwater - boolean&lt;br /&gt;
          allowwatersurface - boolean&lt;br /&gt;
          boxmax - string&lt;br /&gt;
          boxmin - string&lt;br /&gt;
          hidereplications - boolean&lt;br /&gt;
          maxgridobjects - integer&lt;br /&gt;
          mingridobjects - integer&lt;br /&gt;
          offsetz - float&lt;br /&gt;
          radius - integer&lt;br /&gt;
          seed - integer&lt;br /&gt;
          shapefiles - string&lt;br /&gt;
          shaperotatemax - string&lt;br /&gt;
          shaperotatemin - string&lt;br /&gt;
          shapescalemax - string&lt;br /&gt;
          shapescalemin - string&lt;br /&gt;
          surfaceexclusionmode - boolean&lt;br /&gt;
          surfacetype - integer&lt;br /&gt;
          terrainalignment - string&lt;br /&gt;
&lt;br /&gt;
          DynamicGrass (DynamicShapeReplicator):&lt;br /&gt;
&lt;br /&gt;
          DynamicGrassReplicator (DynamicShapeReplicator):&lt;br /&gt;
&lt;br /&gt;
      Sky (SceneObject):&lt;br /&gt;
        cloudheight1 - float&lt;br /&gt;
        cloudheight2 - float&lt;br /&gt;
        cloudheight3 - float&lt;br /&gt;
        cloudspeed1 - float&lt;br /&gt;
        cloudspeed2 - float&lt;br /&gt;
        cloudspeed3 - float&lt;br /&gt;
        fogcolor - string&lt;br /&gt;
        fogstorm1 - boolean&lt;br /&gt;
        fogstorm2 - boolean&lt;br /&gt;
        fogstorm3 - boolean&lt;br /&gt;
        fogvolume1 - string&lt;br /&gt;
        fogvolume2 - string&lt;br /&gt;
        fogvolume3 - string&lt;br /&gt;
        fogvolumecolor1 - string&lt;br /&gt;
        fogvolumecolor2 - string&lt;br /&gt;
        fogvolumecolor3 - string&lt;br /&gt;
        materiallist - string&lt;br /&gt;
        norenderbans - boolean&lt;br /&gt;
        renderbottomtexture - boolean&lt;br /&gt;
        skyfadetime - float&lt;br /&gt;
        skysolidcolor - string&lt;br /&gt;
        useskytextures - boolean&lt;br /&gt;
        windeffectprecipitation - boolean&lt;br /&gt;
        windvelocity - string&lt;br /&gt;
        getwindowvelocity() - returns string&lt;br /&gt;
        realfog(bool, float, float, float) - specify if it should show, and max, min and speed values&lt;br /&gt;
        stormclouds(bool, float) - specify if it should show, and the duration&lt;br /&gt;
        stormcloudsshow(bool)&lt;br /&gt;
        stormfog(float, float) - percent and duration of the fog&lt;br /&gt;
        stormfogshow(bool)&lt;br /&gt;
&lt;br /&gt;
      TerrainBlock (SceneObject):&lt;br /&gt;
        repeatterrain - boolean&lt;br /&gt;
        squaresize - integer&lt;br /&gt;
        terrainfile - string&lt;br /&gt;
&lt;br /&gt;
      WaterBlock (SceneObject):&lt;br /&gt;
        density - float&lt;br /&gt;
        depthgradient - float&lt;br /&gt;
        distortgridscale - float&lt;br /&gt;
        distortmag - float&lt;br /&gt;
        distorttime - float&lt;br /&gt;
        envmapintensity - float&lt;br /&gt;
        envmapovertexture - string&lt;br /&gt;
        envmapundertexture - string&lt;br /&gt;
        flowangle - float&lt;br /&gt;
        flowrate - float&lt;br /&gt;
        ignoreterrain - boolean&lt;br /&gt;
        liquidtype - string&lt;br /&gt;
        maxalpha - float&lt;br /&gt;
        minalpha - float&lt;br /&gt;
        removewetedges - boolean&lt;br /&gt;
        shoredepth - float&lt;br /&gt;
        shoretexture - string&lt;br /&gt;
        specularcolor - string&lt;br /&gt;
        specularmasktex - string&lt;br /&gt;
        specularpower - float&lt;br /&gt;
        submergetexture0 - string&lt;br /&gt;
        submergetexture1 - string&lt;br /&gt;
        surfaceopacity - float&lt;br /&gt;
        surfaceparallax - float&lt;br /&gt;
        surfacetexture - string&lt;br /&gt;
        tessshore - float&lt;br /&gt;
        tesssurface - float&lt;br /&gt;
        usedepthmask - boolean&lt;br /&gt;
        viscosity - float&lt;br /&gt;
        wavemagnitude - float&lt;br /&gt;
&lt;br /&gt;
    SimGroup (SimObject):&lt;br /&gt;
      addcontrol(obj)&lt;br /&gt;
&lt;br /&gt;
      GameConnection (SimGroup):&lt;br /&gt;
        account - string [R]&lt;br /&gt;
        camera - object [R]&lt;br /&gt;
        communityname - string [R]&lt;br /&gt;
        isobserver - boolean [R]&lt;br /&gt;
        nick - string [R]&lt;br /&gt;
        objecttype() - returns string&lt;br /&gt;
        showprofile()&lt;br /&gt;
&lt;br /&gt;
    Sun (SimObject):&lt;br /&gt;
      ambient - string&lt;br /&gt;
      color - string&lt;br /&gt;
      direction - string&lt;br /&gt;
&lt;br /&gt;
  TDrawableObject (TGraalVar):&lt;br /&gt;
    layer - integer [R]&lt;br /&gt;
&lt;br /&gt;
    TBaddy (TDrawableObject):&lt;br /&gt;
      dir - integer&lt;br /&gt;
      headdir - integer&lt;br /&gt;
      mode - integer&lt;br /&gt;
      power - integer&lt;br /&gt;
      type - integer&lt;br /&gt;
      x - float&lt;br /&gt;
      y - float&lt;br /&gt;
&lt;br /&gt;
    TLevelObject (TDrawableObject):&lt;br /&gt;
      level - object [R]&lt;br /&gt;
      x - float&lt;br /&gt;
      y - float&lt;br /&gt;
      z - float&lt;br /&gt;
&lt;br /&gt;
      TExplosion (TLevelObject):&lt;br /&gt;
        dir - integer [R]&lt;br /&gt;
        power - integer [R]&lt;br /&gt;
        time - float [R]&lt;br /&gt;
&lt;br /&gt;
      TGaniObject (TLevelObject):&lt;br /&gt;
        alpha - float&lt;br /&gt;
        ani - object [R]&lt;br /&gt;
        aniparams - string [R]&lt;br /&gt;
        anistep - integer [R]&lt;br /&gt;
        attachedtoobject - object [R]&lt;br /&gt;
        attachid - integer [R]&lt;br /&gt;
        attachtype - integer [R]&lt;br /&gt;
        attr - object [R]&lt;br /&gt;
        blue - float&lt;br /&gt;
        body - string&lt;br /&gt;
        bodyimg - string&lt;br /&gt;
        colors - object [R]&lt;br /&gt;
        dir - integer&lt;br /&gt;
        gmap - object [R]&lt;br /&gt;
        green - float&lt;br /&gt;
        head - string&lt;br /&gt;
        headimg - string&lt;br /&gt;
        mode - integer - the object drawing mode (0 - add, 1 - transparent, 2 - subtract, 3 - daynight)&lt;br /&gt;
        red - float&lt;br /&gt;
        rotation - float&lt;br /&gt;
        shield - string&lt;br /&gt;
        sprite - integer&lt;br /&gt;
        stretchx - float&lt;br /&gt;
        stretchy - float&lt;br /&gt;
        sword - string&lt;br /&gt;
        zoom - float&lt;br /&gt;
        getimageforsprite(obj) - returns string&lt;br /&gt;
        getsprite(str) - returns object&lt;br /&gt;
        getspriteforspritepos(obj) - returns object&lt;br /&gt;
        setcoloreffect(float, float, float, float)&lt;br /&gt;
        seteffectmode(int)&lt;br /&gt;
&lt;br /&gt;
        TProjectile (TGaniObject):&lt;br /&gt;
          angle - float [R]&lt;br /&gt;
          fromplayer - object [R]&lt;br /&gt;
          horiz - boolean [R]&lt;br /&gt;
          params - object [R]&lt;br /&gt;
          speed - float [R]&lt;br /&gt;
          x - float [R]&lt;br /&gt;
          y - float [R]&lt;br /&gt;
          z - float [R]&lt;br /&gt;
          zspeed - float [R]&lt;br /&gt;
&lt;br /&gt;
        TServerHorse (TGaniObject):&lt;br /&gt;
          bombpower - integer&lt;br /&gt;
          bombs - integer&lt;br /&gt;
          bushes - integer&lt;br /&gt;
          dir - integer&lt;br /&gt;
          type - integer&lt;br /&gt;
&lt;br /&gt;
        TServerPlayer (TGaniObject):&lt;br /&gt;
          account - string [R]&lt;br /&gt;
          ap - integer&lt;br /&gt;
          attached - boolean [R]&lt;br /&gt;
          attachedtoobject - object&lt;br /&gt;
          bombs - integer&lt;br /&gt;
          chat - string&lt;br /&gt;
          communityname - string [R]&lt;br /&gt;
          darts - integer&lt;br /&gt;
          fullhearts - integer [R]&lt;br /&gt;
          glovepower - integer&lt;br /&gt;
          gralats - integer&lt;br /&gt;
          guild - string [R]&lt;br /&gt;
          headimg - string&lt;br /&gt;
          headset - integer&lt;br /&gt;
          hearts - float [R]&lt;br /&gt;
          horseimg - string [R]&lt;br /&gt;
          hp - float [R]&lt;br /&gt;
          id - integer [R]&lt;br /&gt;
          isadmin - boolean [R]&lt;br /&gt;
          isbuddy - boolean&lt;br /&gt;
          ischannel - boolean [R]&lt;br /&gt;
          ischannelopen - boolean [R]&lt;br /&gt;
          ischanneluser - boolean [R]&lt;br /&gt;
          isexternal - boolean [R]&lt;br /&gt;
          isfemale - boolean [R]&lt;br /&gt;
          isignored - boolean&lt;br /&gt;
          isignoring - boolean [R]&lt;br /&gt;
          isloggedin - boolean [R]&lt;br /&gt;
          ismale - boolean [R]&lt;br /&gt;
          ismuted - boolean [R]&lt;br /&gt;
          ismuting - boolean [R]&lt;br /&gt;
          language - string [R]&lt;br /&gt;
          languagedomain - string [R]&lt;br /&gt;
          mapicon - object [R] - of type TDrawingPanel, this is the icon that appears on the mini-map, usually updated by the playerlist script&lt;br /&gt;
          maxhp - integer [R]&lt;br /&gt;
          messagebubble - integer [R]&lt;br /&gt;
          mp - integer&lt;br /&gt;
          nick - string&lt;br /&gt;
          platform - string [R]&lt;br /&gt;
          playersindex - integer [R]&lt;br /&gt;
          rating - float [R]&lt;br /&gt;
          ratingd - float [R]&lt;br /&gt;
          rupees - integer - better use 'gralats'&lt;br /&gt;
          shieldimg - string - only there for compatibility with GS1, use just 'shield' instead&lt;br /&gt;
          shieldpower - integer [R]&lt;br /&gt;
          swordimg - string - only there for compatibility with GS1, use just 'sword' instead&lt;br /&gt;
          swordpower - integer [R]&lt;br /&gt;
          x - float&lt;br /&gt;
          y - float&lt;br /&gt;
          isguildpm() - returns boolean&lt;br /&gt;
          ismasspm() - returns boolean&lt;br /&gt;
          openexternalhistory() - returns boolean&lt;br /&gt;
          openexternalpm(bool) - returns boolean - as parameter specify 'true' if it should display the pm sent by the player, otherwise always open a blank PM window&lt;br /&gt;
          pmswaiting() - returns boolean&lt;br /&gt;
          showprofile()&lt;br /&gt;
&lt;br /&gt;
          TPlayer (TServerPlayer):&lt;br /&gt;
            ap - integer&lt;br /&gt;
            chat - string&lt;br /&gt;
            freezetime - float&lt;br /&gt;
            hearts - float&lt;br /&gt;
            horseimg - string&lt;br /&gt;
            hp - float&lt;br /&gt;
            hurt - boolean [R]&lt;br /&gt;
            hurtdx - float [R]&lt;br /&gt;
            hurtdy - float [R]&lt;br /&gt;
            hurted - boolean [R]&lt;br /&gt;
            hurtpower - float [R]&lt;br /&gt;
            isfemale - boolean [R]&lt;br /&gt;
            ismale - boolean [R]&lt;br /&gt;
            isobserver - boolean [R]&lt;br /&gt;
            letters - string&lt;br /&gt;
            map - boolean [R]&lt;br /&gt;
            nick - string [R]&lt;br /&gt;
            onhorse - boolean [R]&lt;br /&gt;
            online - boolean [R]&lt;br /&gt;
            paused - boolean [R]&lt;br /&gt;
            reading - boolean [R]&lt;br /&gt;
            shieldimg - string - same as 'shield', except that changing this also updates the shieldpower&lt;br /&gt;
            sprite - integer&lt;br /&gt;
            swimming - boolean [R]&lt;br /&gt;
            swordimg - string - same as 'sword', except that changing this also updates the swordpower&lt;br /&gt;
            weapon - object [R]&lt;br /&gt;
            weapons - object [R]&lt;br /&gt;
&lt;br /&gt;
          TServerNPC (TServerPlayer):&lt;br /&gt;
            actionplayer - integer [R]&lt;br /&gt;
            hearts - float&lt;br /&gt;
            height - float [R]&lt;br /&gt;
            horseimg - string&lt;br /&gt;
            hp - float&lt;br /&gt;
            hurtdx - float&lt;br /&gt;
            hurtdy - float&lt;br /&gt;
            image - string&lt;br /&gt;
            isblocking - boolean&lt;br /&gt;
            isblockingprojectiles - boolean&lt;br /&gt;
            layer - integer&lt;br /&gt;
            npcsindex - integer [R]&lt;br /&gt;
            peltwithblackstone - boolean [R]&lt;br /&gt;
            peltwithbush - boolean [R]&lt;br /&gt;
            peltwithnpc - boolean [R]&lt;br /&gt;
            peltwithsign - boolean [R]&lt;br /&gt;
            peltwithstone - boolean [R]&lt;br /&gt;
            peltwithvase - boolean [R]&lt;br /&gt;
            save - object [R]&lt;br /&gt;
            shieldpower - integer&lt;br /&gt;
            sprite - integer&lt;br /&gt;
            swordpower - integer&lt;br /&gt;
            visible - boolean&lt;br /&gt;
            width - float [R]&lt;br /&gt;
            x - float&lt;br /&gt;
            y - float&lt;br /&gt;
            blockagain()&lt;br /&gt;
            blockagainlocal()&lt;br /&gt;
            canbecarried()&lt;br /&gt;
            canbepulled()&lt;br /&gt;
            canbepushed()&lt;br /&gt;
            cannotbecarried()&lt;br /&gt;
            cannotbepulled()&lt;br /&gt;
            cannotbepushed()&lt;br /&gt;
            carryobject(str)&lt;br /&gt;
            changeimgcolors(int, float, float, float, float)&lt;br /&gt;
            changeimgmode(int, int)&lt;br /&gt;
            changeimgpart(int, int, int, int, int)&lt;br /&gt;
            changeimgvis(int, int)&lt;br /&gt;
            changeimgzoom(int, float)&lt;br /&gt;
            destroy()&lt;br /&gt;
            dontblock()&lt;br /&gt;
            dontblocklocal()&lt;br /&gt;
            drawaslight()&lt;br /&gt;
            drawoverplayer()&lt;br /&gt;
            drawunderplayer()&lt;br /&gt;
            findimg(int) - returns object&lt;br /&gt;
            hide()&lt;br /&gt;
            hideimg(int)&lt;br /&gt;
            hideimgs(int, int)&lt;br /&gt;
            hidelocal()&lt;br /&gt;
            hurt(int)&lt;br /&gt;
            lay(str)&lt;br /&gt;
            message(str)&lt;br /&gt;
            move(float, float, float, int)&lt;br /&gt;
            setbow(str)&lt;br /&gt;
            setcharani(str, str)&lt;br /&gt;
            setchargender(str)&lt;br /&gt;
            setimg(str)&lt;br /&gt;
            setimgpart(str, int, int, int, int)&lt;br /&gt;
            setshape(int, int, int)&lt;br /&gt;
            setshape2(int, int, obj)&lt;br /&gt;
            setzoomeffect(float)&lt;br /&gt;
            shootarrow(int)&lt;br /&gt;
            shootball()&lt;br /&gt;
            shootfireball(int)&lt;br /&gt;
            shootfireblast(int)&lt;br /&gt;
            shootnuke(int)&lt;br /&gt;
            show()&lt;br /&gt;
            showani(int, float, float, int, str) - returns object&lt;br /&gt;
            showani2(int, float, float, float, int, str) - returns object&lt;br /&gt;
            showcharacter()&lt;br /&gt;
            showimg(int, str, float, float) - returns object&lt;br /&gt;
            showimg2(int, str, float, float, float) - returns object&lt;br /&gt;
            showlocal()&lt;br /&gt;
            showpoly(int, obj) - returns object&lt;br /&gt;
            showpoly2(int, obj) - returns object&lt;br /&gt;
            showtext(int, float, float, str, str, str) - returns object&lt;br /&gt;
            showtext2(int, float, float, float, str, str, str) - returns object&lt;br /&gt;
            take(str)&lt;br /&gt;
            take2(int)&lt;br /&gt;
            takehorse(int)&lt;br /&gt;
            throwcarry()&lt;br /&gt;
            timereverywhere()&lt;br /&gt;
&lt;br /&gt;
            TServerWeapon (TServerNPC):&lt;br /&gt;
              isweapon - boolean [R]&lt;br /&gt;
&lt;br /&gt;
      TServerBomb (TLevelObject):&lt;br /&gt;
        power - integer&lt;br /&gt;
        time - float&lt;br /&gt;
&lt;br /&gt;
      TServerCarry (TLevelObject):&lt;br /&gt;
&lt;br /&gt;
      TServerChest (TLevelObject):&lt;br /&gt;
        isopen - boolean [R]&lt;br /&gt;
        item - string [R]&lt;br /&gt;
&lt;br /&gt;
      TServerExtra (TLevelObject):&lt;br /&gt;
        time - float [R]&lt;br /&gt;
        type - integer [R]&lt;br /&gt;
&lt;br /&gt;
      TServerFlying (TLevelObject):&lt;br /&gt;
        dir - integer [R]&lt;br /&gt;
        dx - float&lt;br /&gt;
        dy - float&lt;br /&gt;
        from - integer [R]&lt;br /&gt;
        type - integer [R]&lt;br /&gt;
&lt;br /&gt;
      TServerLeap (TLevelObject):&lt;br /&gt;
&lt;br /&gt;
      TServerSign (TLevelObject):&lt;br /&gt;
        text - string&lt;br /&gt;
&lt;br /&gt;
      TShowImg (TLevelObject):&lt;br /&gt;
        alpha - float&lt;br /&gt;
        ani - string&lt;br /&gt;
        attachnode - string&lt;br /&gt;
        attachoffset - string&lt;br /&gt;
        attachtoowner - boolean&lt;br /&gt;
        blue - float&lt;br /&gt;
        code - string - the old representation as 'font@style@text'&lt;br /&gt;
        dimension - integer&lt;br /&gt;
        dir - integer&lt;br /&gt;
        emitter - object [R]&lt;br /&gt;
        eulerrotation - string&lt;br /&gt;
        flashfile - string&lt;br /&gt;
        font - string&lt;br /&gt;
        green - float&lt;br /&gt;
        image - string&lt;br /&gt;
        imageindex - integer [R]&lt;br /&gt;
        is3dlight - boolean&lt;br /&gt;
        layer - integer&lt;br /&gt;
        mode - integer - the image drawing mode (0 - add, 1 - transparent, 2 - subtract, 3 - daynight)&lt;br /&gt;
        playerlook - boolean - if the animation should take it's head, body, sword, shield and attr[] from the owner (playerlook), set this to false if you want to set the images yourself by changing showimg.actor.head etc.&lt;br /&gt;
        polygon - object&lt;br /&gt;
        position - string&lt;br /&gt;
        red - float&lt;br /&gt;
        rotation - float&lt;br /&gt;
        shape - string&lt;br /&gt;
        shapeobject - object [R]&lt;br /&gt;
        spin - float&lt;br /&gt;
        stretchx - float&lt;br /&gt;
        stretchy - float&lt;br /&gt;
        style - string&lt;br /&gt;
        text - string&lt;br /&gt;
        x - float&lt;br /&gt;
        y - float&lt;br /&gt;
        z - float&lt;br /&gt;
        zoom - float&lt;br /&gt;
&lt;br /&gt;
  TDrawingPanel (TGraalVar):&lt;br /&gt;
    height - integer [R]&lt;br /&gt;
    isclear - boolean [R]&lt;br /&gt;
    parth - integer [R]&lt;br /&gt;
    partw - integer [R]&lt;br /&gt;
    partx - integer [R]&lt;br /&gt;
    party - integer [R]&lt;br /&gt;
    width - integer [R]&lt;br /&gt;
    clearall()&lt;br /&gt;
    clearrectangle(int, int, int, int) - x, y, width and height&lt;br /&gt;
    drawimage(int, int, str) - x, y, source image&lt;br /&gt;
    drawimagerectangle(int, int, str, int, int, int, int) - destination x and y, source image, source x,y,width and height&lt;br /&gt;
    drawimagestretched(int, int, int, int, str, int, int, int, int) - destination x,y,width and height, source image, source x,y,width and height&lt;br /&gt;
    saveimage(str)&lt;br /&gt;
&lt;br /&gt;
  Terraformer (TGraalVar):&lt;br /&gt;
    loadgrayscale(int, str) - returns boolean&lt;br /&gt;
    loadgreyscale(int, str) - returns boolean&lt;br /&gt;
    savegreyscale(int, str) - returns boolean&lt;br /&gt;
    setterrain(int) - returns boolean&lt;br /&gt;
&lt;br /&gt;
  TFrameDetail (TGraalVar):&lt;br /&gt;
    bordercolor - string&lt;br /&gt;
    borderenable - string&lt;br /&gt;
    bordermovable - string&lt;br /&gt;
    borderwidth - integer&lt;br /&gt;
    minextent - string&lt;br /&gt;
&lt;br /&gt;
  TGameObjectAttr (TGraalVar):&lt;br /&gt;
&lt;br /&gt;
  TGaniParam (TGraalVar):&lt;br /&gt;
&lt;br /&gt;
  TGraalAni (TGraalVar):&lt;br /&gt;
    continuous - boolean&lt;br /&gt;
    ganitype - string [R]&lt;br /&gt;
    loop - boolean&lt;br /&gt;
    movie - boolean&lt;br /&gt;
    setbackto - string&lt;br /&gt;
    singledirection - boolean&lt;br /&gt;
    addsprite(int) - returns object&lt;br /&gt;
    addstep() - returns object&lt;br /&gt;
    deletesprite(int)&lt;br /&gt;
    deletestep(int)&lt;br /&gt;
    getsprite(int) - returns object&lt;br /&gt;
    insertstep(int) - returns object&lt;br /&gt;
&lt;br /&gt;
  TGraalAniPart (TGraalVar):&lt;br /&gt;
    attr - integer&lt;br /&gt;
    dx - integer&lt;br /&gt;
    dy - integer&lt;br /&gt;
    param - integer&lt;br /&gt;
    sprite - object&lt;br /&gt;
&lt;br /&gt;
  TGraalAniSound (TGraalVar):&lt;br /&gt;
    delay - float&lt;br /&gt;
    dx - float&lt;br /&gt;
    dy - float&lt;br /&gt;
    sound - string&lt;br /&gt;
&lt;br /&gt;
  TGraalAniSprite (TGraalVar):&lt;br /&gt;
    alpha - float&lt;br /&gt;
    blue - float&lt;br /&gt;
    description - string&lt;br /&gt;
    green - float&lt;br /&gt;
    height - integer&lt;br /&gt;
    image - string&lt;br /&gt;
    imagetype - string [R]&lt;br /&gt;
    mode - integer&lt;br /&gt;
    red - float&lt;br /&gt;
    rotation - float&lt;br /&gt;
    spriteindex - integer&lt;br /&gt;
    stretchx - float&lt;br /&gt;
    stretchy - float&lt;br /&gt;
    width - integer&lt;br /&gt;
    x - integer&lt;br /&gt;
    y - integer&lt;br /&gt;
    zoom - float&lt;br /&gt;
    addattachment() - returns object&lt;br /&gt;
    deleteattachment(int)&lt;br /&gt;
    insertattachment(int) - returns object&lt;br /&gt;
&lt;br /&gt;
  TGraalAniStep (TGraalVar):&lt;br /&gt;
    delay - float&lt;br /&gt;
    addpos(int) - returns object&lt;br /&gt;
    deletepos(int, int)&lt;br /&gt;
    insertpos(int, int) - returns object&lt;br /&gt;
&lt;br /&gt;
  TGraalSpriteAttachment (TGraalVar):&lt;br /&gt;
    behind - boolean&lt;br /&gt;
    dx - integer&lt;br /&gt;
    dy - integer&lt;br /&gt;
    sprite - object&lt;br /&gt;
&lt;br /&gt;
  THTTPRequest (TGraalVar):&lt;br /&gt;
    address - string [R]&lt;br /&gt;
    contentlanguage - string [R]&lt;br /&gt;
    contentlength - integer [R]&lt;br /&gt;
    contenttype - string [R]&lt;br /&gt;
    downloadcomplete - boolean [R]&lt;br /&gt;
    file - string [R]&lt;br /&gt;
    fulldata - string [R]&lt;br /&gt;
    lastmodified - string [R]&lt;br /&gt;
    port - integer [R]&lt;br /&gt;
    returncode - integer [R]&lt;br /&gt;
    returnmessage - string [R]&lt;br /&gt;
    server - string [R]&lt;br /&gt;
    url - string [R]&lt;br /&gt;
&lt;br /&gt;
  TMovementRigid (TGraalVar):&lt;br /&gt;
    mass - float&lt;br /&gt;
&lt;br /&gt;
  TParticle (TGraalVar):&lt;br /&gt;
    angle - float&lt;br /&gt;
    lifetime - float&lt;br /&gt;
    movementvector - string&lt;br /&gt;
    sound - string&lt;br /&gt;
    speed - float&lt;br /&gt;
    zangle - float&lt;br /&gt;
&lt;br /&gt;
  TParticleEmitter (TGraalVar):&lt;br /&gt;
    attachposition - boolean&lt;br /&gt;
    autorotation - boolean&lt;br /&gt;
    checkbelowterrain - boolean&lt;br /&gt;
    clippingbox - string&lt;br /&gt;
    cliptoscreen - boolean&lt;br /&gt;
    continueafterdestroy - boolean&lt;br /&gt;
    currentparticlecount - integer [R]&lt;br /&gt;
    delaymax - float&lt;br /&gt;
    delaymin - float&lt;br /&gt;
    dropemitter - object [R]&lt;br /&gt;
    dropwateremitter - object [R]&lt;br /&gt;
    emissionoffset - string&lt;br /&gt;
    emitatterrainheight - boolean&lt;br /&gt;
    emitautomatically - boolean&lt;br /&gt;
    emittedparticles - integer [R]&lt;br /&gt;
    firstinfront - boolean&lt;br /&gt;
    isfrozen - boolean&lt;br /&gt;
    maxparticles - integer&lt;br /&gt;
    movementfactor - float&lt;br /&gt;
    nrofparticles - integer&lt;br /&gt;
    particle - object [R]&lt;br /&gt;
    particletypes - integer&lt;br /&gt;
    wraptoclippingbox - boolean&lt;br /&gt;
    addemitmodifier(str, float, float, str, str, float, float) - returns object&lt;br /&gt;
    addglobalmodifier(str, float, float, str, str, float, float) - returns object&lt;br /&gt;
    addlocalmodifier(str, float, float, str, str, float, float) - returns object&lt;br /&gt;
    advancetime(float)&lt;br /&gt;
    emit()&lt;br /&gt;
    emitat(str)&lt;br /&gt;
    removemodifiers()&lt;br /&gt;
    removeparticles()&lt;br /&gt;
&lt;br /&gt;
  TParticleModifier (TGraalVar):&lt;br /&gt;
    addmod(str, str, float, float)&lt;br /&gt;
&lt;br /&gt;
  TScriptFunction (TGraalVar):&lt;br /&gt;
&lt;br /&gt;
  TServerLevel (TGraalVar):&lt;br /&gt;
    compsdead - boolean [R]&lt;br /&gt;
    height - integer [R]&lt;br /&gt;
    isnopkzone - boolean [R]&lt;br /&gt;
    issparringzone - boolean [R]&lt;br /&gt;
    nopkzone - boolean [R] - same like 'isnopkzone'&lt;br /&gt;
    tilelayercount - integer&lt;br /&gt;
    width - integer [R]&lt;br /&gt;
    findareanpcs(float, float, float, float) - returns object - returns an array of all npcs at the specified rectangle (x,y,width,height)&lt;br /&gt;
    getmappartfile(float, float) - returns string&lt;br /&gt;
    hitcompu(int, int, float, float)&lt;br /&gt;
    putbomb(int, float, float)&lt;br /&gt;
    putcomp(str, float, float)&lt;br /&gt;
    putexplosion(int, float, float)&lt;br /&gt;
    putexplosion2(int, int, float, float)&lt;br /&gt;
    puthorse(str, float, float)&lt;br /&gt;
    putnewcomp(str, float, float, str, int)&lt;br /&gt;
    reflectarrow(int)&lt;br /&gt;
    removearrow(int)&lt;br /&gt;
    removebomb(int)&lt;br /&gt;
    removecompus()&lt;br /&gt;
    removeexplo(int)&lt;br /&gt;
    removehorse(int)&lt;br /&gt;
    removeitem(int)&lt;br /&gt;
    setz(int, int, int, int, float, float, float, float)&lt;br /&gt;
    shoot(float, float, float, float, float, float, str, str) - shoots a projectile with x,y,z,angle,zangle,strength,ani,aniparams&lt;br /&gt;
    testbomb(float, float) - returns integer&lt;br /&gt;
    testexplo(float, float) - returns integer&lt;br /&gt;
    testhorse(float, float) - returns integer&lt;br /&gt;
    testitem(float, float) - returns integer&lt;br /&gt;
    testnpc(float, float) - returns integer&lt;br /&gt;
    testsign(float, float) - returns integer&lt;br /&gt;
    tiletype(float, float) - returns integer&lt;br /&gt;
&lt;br /&gt;
  TServerLevelLink (TGraalVar):&lt;br /&gt;
    destlevel - string [R]&lt;br /&gt;
    destx - float [R]&lt;br /&gt;
    desty - float [R]&lt;br /&gt;
    height - float [R]&lt;br /&gt;
    width - float [R]&lt;br /&gt;
    x - float [R]&lt;br /&gt;
    y - float [R]&lt;br /&gt;
&lt;br /&gt;
  TShapeMaterial (TGraalVar):&lt;br /&gt;
    specularpower - integer&lt;br /&gt;
&lt;br /&gt;
  TShowImg_Values (TGraalVar):&lt;br /&gt;
    alpha - float&lt;br /&gt;
    blue - float&lt;br /&gt;
    green - float&lt;br /&gt;
    mode - integer - the image drawing mode (0 - add, 1 - transparent, 2 - subtract, 3 - daynight)&lt;br /&gt;
    red - float&lt;br /&gt;
    rotation - float&lt;br /&gt;
    spin - float&lt;br /&gt;
    stretchx - float&lt;br /&gt;
    stretchy - float&lt;br /&gt;
    zoom - float&lt;br /&gt;
&lt;br /&gt;
    TShowImg_Flash (TShowImg_Values):&lt;br /&gt;
      flash - object [R]&lt;br /&gt;
&lt;br /&gt;
    TShowImg_Gani (TShowImg_Values):&lt;br /&gt;
      actor - object [R]&lt;br /&gt;
&lt;br /&gt;
    TShowImg_Image (TShowImg_Values):&lt;br /&gt;
      height - float&lt;br /&gt;
      parth - integer&lt;br /&gt;
      partw - integer&lt;br /&gt;
      partx - integer&lt;br /&gt;
      party - integer&lt;br /&gt;
      width - float&lt;br /&gt;
&lt;br /&gt;
    TShowImg_Poly (TShowImg_Values):&lt;br /&gt;
      parth - integer&lt;br /&gt;
      partw - integer&lt;br /&gt;
      partx - integer&lt;br /&gt;
      party - integer&lt;br /&gt;
&lt;br /&gt;
    TShowImg_Shape (TShowImg_Values):&lt;br /&gt;
      lightcolor - string&lt;br /&gt;
      lightdirection - string&lt;br /&gt;
      shadowdirection - string&lt;br /&gt;
&lt;br /&gt;
    TShowImg_Text (TShowImg_Values):&lt;br /&gt;
      parth - integer&lt;br /&gt;
      partw - integer&lt;br /&gt;
      partx - integer&lt;br /&gt;
      party - integer&lt;br /&gt;
      shadowcolor - string&lt;br /&gt;
      shadowoffset - string&lt;br /&gt;
      textshadow - boolean&lt;br /&gt;
&lt;br /&gt;
  TStaticVar (TGraalVar):&lt;br /&gt;
    destroy()&lt;br /&gt;
&lt;br /&gt;
    Array (TStaticVar):&lt;br /&gt;
      initialize(params...)&lt;br /&gt;
&lt;br /&gt;
    Color (TStaticVar):&lt;br /&gt;
      initialize(obj)&lt;br /&gt;
      setrgb(int)&lt;br /&gt;
&lt;br /&gt;
    Date (TStaticVar):&lt;br /&gt;
      initialize(params...)&lt;br /&gt;
&lt;br /&gt;
    Math (TStaticVar):&lt;br /&gt;
      abs(float) - returns float&lt;br /&gt;
      floor(float) - returns integer&lt;br /&gt;
      random() - returns float&lt;br /&gt;
      sin(float) - returns float&lt;br /&gt;
      sqrt(float) - returns float&lt;br /&gt;
&lt;br /&gt;
    Sound (TStaticVar):&lt;br /&gt;
      initialize(params...)&lt;br /&gt;
&lt;br /&gt;
    String (TStaticVar):&lt;br /&gt;
      initialize(params...)&lt;br /&gt;
&lt;br /&gt;
  TTilesLayer (TGraalVar):&lt;br /&gt;
    alpha - float&lt;br /&gt;
    blue - float&lt;br /&gt;
    green - float&lt;br /&gt;
    layerindex - integer [R]&lt;br /&gt;
    offset - string&lt;br /&gt;
    red - float&lt;br /&gt;
    x - float&lt;br /&gt;
    y - float&lt;br /&gt;
    z - float&lt;br /&gt;
    updateboard(int, int, int, int)&lt;br /&gt;
&lt;br /&gt;
  TUpdatePackage (TGraalVar):&lt;br /&gt;
    accounts - object [R]&lt;br /&gt;
    description - string [R]&lt;br /&gt;
    downloadcomplete - boolean [R]&lt;br /&gt;
    downloadedsize - integer [R]&lt;br /&gt;
    filecount - integer [R]&lt;br /&gt;
    filedownloadedsize - integer [R]&lt;br /&gt;
    filename - string [R]&lt;br /&gt;
    filetotalsize - integer [R]&lt;br /&gt;
    isuninstalled - boolean [R]&lt;br /&gt;
    lastdownloadfile - string [R]&lt;br /&gt;
    localversion - float [R]&lt;br /&gt;
    mode - string [R]&lt;br /&gt;
    name - string [R]&lt;br /&gt;
    parent - object [R]&lt;br /&gt;
    platform - string [R]&lt;br /&gt;
    protectoverwrite - boolean [R]&lt;br /&gt;
    totalsize - integer [R]&lt;br /&gt;
    usechecksum - boolean [R]&lt;br /&gt;
    version - float [R]&lt;br /&gt;
    reinstall() - returns boolean&lt;br /&gt;
    uninstall() - returns boolean&lt;br /&gt;
    update() - returns boolean&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=GUI Objects=&lt;br /&gt;
GUI Objects are currently well documented starting here [[Creation/Dev/Script/Client/GuiControl]].&lt;br /&gt;
&lt;br /&gt;
=Global=&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  $pref::audio::choosenvoicecodec - integer&lt;br /&gt;
  $pref::audio::microactivatebyvolume - boolean&lt;br /&gt;
  $pref::audio::microactivationlevel - integer&lt;br /&gt;
  $pref::audio::microinputdevice - integer&lt;br /&gt;
  $pref::audio::microon - boolean&lt;br /&gt;
  $pref::audio::microvolumefactor - integer&lt;br /&gt;
  $pref::audio::midivolume - integer&lt;br /&gt;
  $pref::audio::mp3volume - integer&lt;br /&gt;
  $pref::audio::radiovolume - integer&lt;br /&gt;
  $pref::audio::reversestereo - boolean&lt;br /&gt;
  $pref::audio::sfxvolume - integer&lt;br /&gt;
  $pref::audio::voicevolume - integer&lt;br /&gt;
  $pref::capture::allowbyscript - boolean [R]&lt;br /&gt;
  $pref::capture::area - string&lt;br /&gt;
  $pref::capture::audiobitrate - integer&lt;br /&gt;
  $pref::capture::disabledaynight - boolean&lt;br /&gt;
  $pref::capture::format - string&lt;br /&gt;
  $pref::capture::fps - integer&lt;br /&gt;
  $pref::capture::hideinterface - boolean&lt;br /&gt;
  $pref::capture::recordaudio - boolean&lt;br /&gt;
  $pref::capture::showmouse - boolean&lt;br /&gt;
  $pref::capture::size - string&lt;br /&gt;
  $pref::capture::videobitrate - integer&lt;br /&gt;
  $pref::graal::allowglobalpms - boolean&lt;br /&gt;
  $pref::graal::automapping - boolean&lt;br /&gt;
  $pref::graal::defaultfontname - string&lt;br /&gt;
  $pref::graal::defaultfontsize - integer&lt;br /&gt;
  $pref::graal::dontconnectlevels - boolean&lt;br /&gt;
  $pref::graal::dontloadlistheads - boolean&lt;br /&gt;
  $pref::graal::dontsavepasswords - boolean&lt;br /&gt;
  $pref::graal::dontsavepms - boolean&lt;br /&gt;
  $pref::graal::fixedport - boolean&lt;br /&gt;
  $pref::graal::fixedudpport - integer&lt;br /&gt;
  $pref::graal::language - string&lt;br /&gt;
  $pref::graal::limitnicknames - boolean&lt;br /&gt;
  $pref::graal::loadbuddylistfromserver - boolean&lt;br /&gt;
  $pref::graal::nicknamelimit - integer&lt;br /&gt;
  $pref::graal::nomassmessages - boolean&lt;br /&gt;
  $pref::graal::notoalls - boolean&lt;br /&gt;
  $pref::graal::noudp - boolean&lt;br /&gt;
  $pref::graal::showyourselfonbuddylists - boolean&lt;br /&gt;
  $pref::input::mousesensitivity - float&lt;br /&gt;
  $pref::interior::lockarrays - boolean&lt;br /&gt;
  $pref::video::defaultguistyle - string&lt;br /&gt;
  $pref::video::detailfactor - float&lt;br /&gt;
  $pref::video::fogdistance - float&lt;br /&gt;
  $pref::video::fullscreenmode - string&lt;br /&gt;
  $pref::video::resolution - integer&lt;br /&gt;
  $pref::video::screenshotformat - string&lt;br /&gt;
  $pref::video::visibledistance - float&lt;br /&gt;
  $pref::video::windowmode - string&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Fowlplay4</name></author>
	</entry>
	<entry>
		<id>https://graalonline.net/index.php?title=Creation/Dev/GScript&amp;diff=17985</id>
		<title>Creation/Dev/GScript</title>
		<link rel="alternate" type="text/html" href="https://graalonline.net/index.php?title=Creation/Dev/GScript&amp;diff=17985"/>
		<updated>2011-03-05T06:43:06Z</updated>

		<summary type="html">&lt;p&gt;Fowlplay4: /* Documentation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Scripting Reference]]&lt;br /&gt;
==Introduction==&lt;br /&gt;
&lt;br /&gt;
'''GScript''' is [[Graal]]'s scripting language.&lt;br /&gt;
&lt;br /&gt;
Its syntax and some of its semantics might seem familiar to those who program in [[WikiPedia:C (Programming Language) |C]] or [[WikiPedia:Java_programming_language|Java]], it uses ECMA-Script syntax. In some ways it is more dynamic, e.g. supporting dynamicly joining and leaving of classes, and brings support for easy management of online game content.&lt;br /&gt;
&lt;br /&gt;
It is used for [[clientside]] tasks like [[GUI | GUI programming]], special effects and custom [[NPC weapon|weapons]], and [[serverside]] systems like player housing, complex baddies or pets.&lt;br /&gt;
&lt;br /&gt;
'''If you would like to contribute to the GraalBible's GScript documentation, you might want to [[Creation/Dev/GScript/Contribute|read this article]].'''&lt;br /&gt;
&lt;br /&gt;
==Documentation==&lt;br /&gt;
In your scripting quest, you may find the following articles to be of use:&lt;br /&gt;
&lt;br /&gt;
'''Basic information'''&lt;br /&gt;
* [[Creation/Dev/Script/Starting Guide|Starting Guide]]&lt;br /&gt;
* [[Creation/Dev/Script/Client|Functions, variables and objects (clientside)]] &lt;br /&gt;
* [[Image:Guicontrol_window.png|80px]] [[Creation/Dev/Script/Client/GuiControls_List|GUI Controls]]&lt;br /&gt;
&lt;br /&gt;
'''Tutorials'''&lt;br /&gt;
* [[Image:s_dummies.png|80px]] [[Creation/Dev/GScript/New Engine GScript for Dummies|New Engine GScript for Dummies]]&lt;br /&gt;
* [[Creation/Dev/Excalibur's scripting guide|Excalibur's Scripting Guide]]&lt;br /&gt;
* [http://gs2.graalstudios.com/ Twinny's Scripting Page]&lt;br /&gt;
* [http://public.zodiacdev.com/index.php?title=Fowlplay4 Fowlplay4's Scripting Guide]&lt;br /&gt;
&lt;br /&gt;
'''Specific Features'''&lt;br /&gt;
* [[Creation/Dev/GS1_To_GS2|GS1 To GS2: Guide for fixing scripts to work with the new engine]]&lt;br /&gt;
* [[Creation/Dev/Output Methods|Output methods]]&lt;br /&gt;
* [[Creation/Dev/Using Classes Effectively|Use of classes]]&lt;br /&gt;
* [[Creation/Dev/GScript/Constants|Constants]]&lt;br /&gt;
* [[Creation/Dev/GScript/Understanding GUI Profiles|GUI Features: Understanding GUI profiles]]&lt;br /&gt;
* [[Image:Guicontrol_tab.png]] [[Creation/Dev/Creating Tabbed Window Panes|Creating Tabbed Window Panes]]&lt;br /&gt;
* [[Particle Engine|Particle Engine]]&lt;br /&gt;
* [[Creation/Dev/Graal v4 IRC|Graal IRC Scripting: Graal IRC Scripting Reference]]&lt;br /&gt;
* [[Creation/Dev/Troubleshooting Graal v4 IRC|Graal IRC Scripting: Troubleshooting Scripting Reference]]&lt;br /&gt;
* [[Creation/Dev/Database_Communication|Indexed Database Communication]]&lt;br /&gt;
* [[Vectors]] (3D)&lt;br /&gt;
* [[Creation/Dev/wordFilter|Word Filter]]&lt;br /&gt;
* [[Creation/Dev/GScript/Stefan_Wisdom|Stefan Wisdom]]&lt;br /&gt;
* [http://forums.graalonline.com/forums/showpost.php?p=1573674&amp;amp;postcount=6 Communicating with a webserver]&lt;br /&gt;
&lt;br /&gt;
'''Script Function List'''&lt;br /&gt;
&lt;br /&gt;
These are frequently updated, to get the latest list run Graal with the -listscriptfunctions option. You can also get help about script functions with the ''/scripthelp &amp;lt;string&amp;gt;'' command on RemoteControl chat.&lt;br /&gt;
* [[Creation/Dev/Script/Clientside_Functions|Client side]]&lt;br /&gt;
* [[Creation/Dev/Script Functions: NPC Server|Server side]]&lt;br /&gt;
&lt;br /&gt;
==External Links==&lt;br /&gt;
Tutorials and other helpful resources.&lt;br /&gt;
&lt;br /&gt;
* [http://wiki.graal.us/Index New GScript Wiki]&lt;br /&gt;
* [http://gs2.graalstudios.com/ Twinny's Scripting Page]&lt;br /&gt;
* [[GScript IRC channel]] (non-official)&lt;br /&gt;
* [http://public.zodiacdev.com/index.php?title=Fowlplay4 Fowlplay4's tutorial]&lt;/div&gt;</summary>
		<author><name>Fowlplay4</name></author>
	</entry>
	<entry>
		<id>https://graalonline.net/index.php?title=Creation/Dev/GScript&amp;diff=17984</id>
		<title>Creation/Dev/GScript</title>
		<link rel="alternate" type="text/html" href="https://graalonline.net/index.php?title=Creation/Dev/GScript&amp;diff=17984"/>
		<updated>2011-03-05T06:42:02Z</updated>

		<summary type="html">&lt;p&gt;Fowlplay4: /* External Links */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Scripting Reference]]&lt;br /&gt;
==Introduction==&lt;br /&gt;
&lt;br /&gt;
'''GScript''' is [[Graal]]'s scripting language.&lt;br /&gt;
&lt;br /&gt;
Its syntax and some of its semantics might seem familiar to those who program in [[WikiPedia:C (Programming Language) |C]] or [[WikiPedia:Java_programming_language|Java]], it uses ECMA-Script syntax. In some ways it is more dynamic, e.g. supporting dynamicly joining and leaving of classes, and brings support for easy management of online game content.&lt;br /&gt;
&lt;br /&gt;
It is used for [[clientside]] tasks like [[GUI | GUI programming]], special effects and custom [[NPC weapon|weapons]], and [[serverside]] systems like player housing, complex baddies or pets.&lt;br /&gt;
&lt;br /&gt;
'''If you would like to contribute to the GraalBible's GScript documentation, you might want to [[Creation/Dev/GScript/Contribute|read this article]].'''&lt;br /&gt;
&lt;br /&gt;
==Documentation==&lt;br /&gt;
In your scripting quest, you may find the following articles to be of use:&lt;br /&gt;
&lt;br /&gt;
'''Basic information'''&lt;br /&gt;
* [[Creation/Dev/Script/Starting Guide|Starting Guide]]&lt;br /&gt;
* [[Creation/Dev/Script/Client|Functions, variables and objects (clientside)]] &lt;br /&gt;
* [[Image:Guicontrol_window.png|80px]] [[Creation/Dev/Script/Client/GuiControls_List|GUI Controls]]&lt;br /&gt;
&lt;br /&gt;
'''Tutorials'''&lt;br /&gt;
* [[Image:s_dummies.png|80px]] [[Creation/Dev/GScript/New Engine GScript for Dummies|New Engine GScript for Dummies]]&lt;br /&gt;
* [[Creation/Dev/Excalibur's scripting guide|Excalibur's Scripting Guide]]&lt;br /&gt;
&lt;br /&gt;
'''Specific Features'''&lt;br /&gt;
* [[Creation/Dev/GS1_To_GS2|GS1 To GS2: Guide for fixing scripts to work with the new engine]]&lt;br /&gt;
* [[Creation/Dev/Output Methods|Output methods]]&lt;br /&gt;
* [[Creation/Dev/Using Classes Effectively|Use of classes]]&lt;br /&gt;
* [[Creation/Dev/GScript/Constants|Constants]]&lt;br /&gt;
* [[Creation/Dev/GScript/Understanding GUI Profiles|GUI Features: Understanding GUI profiles]]&lt;br /&gt;
* [[Image:Guicontrol_tab.png]] [[Creation/Dev/Creating Tabbed Window Panes|Creating Tabbed Window Panes]]&lt;br /&gt;
* [[Particle Engine|Particle Engine]]&lt;br /&gt;
* [[Creation/Dev/Graal v4 IRC|Graal IRC Scripting: Graal IRC Scripting Reference]]&lt;br /&gt;
* [[Creation/Dev/Troubleshooting Graal v4 IRC|Graal IRC Scripting: Troubleshooting Scripting Reference]]&lt;br /&gt;
* [[Creation/Dev/Database_Communication|Indexed Database Communication]]&lt;br /&gt;
* [[Vectors]] (3D)&lt;br /&gt;
* [[Creation/Dev/wordFilter|Word Filter]]&lt;br /&gt;
* [[Creation/Dev/GScript/Stefan_Wisdom|Stefan Wisdom]]&lt;br /&gt;
* [http://forums.graalonline.com/forums/showpost.php?p=1573674&amp;amp;postcount=6 Communicating with a webserver]&lt;br /&gt;
&lt;br /&gt;
'''Script Function List'''&lt;br /&gt;
&lt;br /&gt;
These are frequently updated, to get the latest list run Graal with the -listscriptfunctions option. You can also get help about script functions with the ''/scripthelp &amp;lt;string&amp;gt;'' command on RemoteControl chat.&lt;br /&gt;
* [[Creation/Dev/Script/Clientside_Functions|Client side]]&lt;br /&gt;
* [[Creation/Dev/Script Functions: NPC Server|Server side]]&lt;br /&gt;
&lt;br /&gt;
==External Links==&lt;br /&gt;
Tutorials and other helpful resources.&lt;br /&gt;
&lt;br /&gt;
* [http://wiki.graal.us/Index New GScript Wiki]&lt;br /&gt;
* [http://gs2.graalstudios.com/ Twinny's Scripting Page]&lt;br /&gt;
* [[GScript IRC channel]] (non-official)&lt;br /&gt;
* [http://public.zodiacdev.com/index.php?title=Fowlplay4 Fowlplay4's tutorial]&lt;/div&gt;</summary>
		<author><name>Fowlplay4</name></author>
	</entry>
	<entry>
		<id>https://graalonline.net/index.php?title=Creation/Dev/GScript&amp;diff=17983</id>
		<title>Creation/Dev/GScript</title>
		<link rel="alternate" type="text/html" href="https://graalonline.net/index.php?title=Creation/Dev/GScript&amp;diff=17983"/>
		<updated>2011-03-05T06:41:34Z</updated>

		<summary type="html">&lt;p&gt;Fowlplay4: /* External Links */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Scripting Reference]]&lt;br /&gt;
==Introduction==&lt;br /&gt;
&lt;br /&gt;
'''GScript''' is [[Graal]]'s scripting language.&lt;br /&gt;
&lt;br /&gt;
Its syntax and some of its semantics might seem familiar to those who program in [[WikiPedia:C (Programming Language) |C]] or [[WikiPedia:Java_programming_language|Java]], it uses ECMA-Script syntax. In some ways it is more dynamic, e.g. supporting dynamicly joining and leaving of classes, and brings support for easy management of online game content.&lt;br /&gt;
&lt;br /&gt;
It is used for [[clientside]] tasks like [[GUI | GUI programming]], special effects and custom [[NPC weapon|weapons]], and [[serverside]] systems like player housing, complex baddies or pets.&lt;br /&gt;
&lt;br /&gt;
'''If you would like to contribute to the GraalBible's GScript documentation, you might want to [[Creation/Dev/GScript/Contribute|read this article]].'''&lt;br /&gt;
&lt;br /&gt;
==Documentation==&lt;br /&gt;
In your scripting quest, you may find the following articles to be of use:&lt;br /&gt;
&lt;br /&gt;
'''Basic information'''&lt;br /&gt;
* [[Creation/Dev/Script/Starting Guide|Starting Guide]]&lt;br /&gt;
* [[Creation/Dev/Script/Client|Functions, variables and objects (clientside)]] &lt;br /&gt;
* [[Image:Guicontrol_window.png|80px]] [[Creation/Dev/Script/Client/GuiControls_List|GUI Controls]]&lt;br /&gt;
&lt;br /&gt;
'''Tutorials'''&lt;br /&gt;
* [[Image:s_dummies.png|80px]] [[Creation/Dev/GScript/New Engine GScript for Dummies|New Engine GScript for Dummies]]&lt;br /&gt;
* [[Creation/Dev/Excalibur's scripting guide|Excalibur's Scripting Guide]]&lt;br /&gt;
&lt;br /&gt;
'''Specific Features'''&lt;br /&gt;
* [[Creation/Dev/GS1_To_GS2|GS1 To GS2: Guide for fixing scripts to work with the new engine]]&lt;br /&gt;
* [[Creation/Dev/Output Methods|Output methods]]&lt;br /&gt;
* [[Creation/Dev/Using Classes Effectively|Use of classes]]&lt;br /&gt;
* [[Creation/Dev/GScript/Constants|Constants]]&lt;br /&gt;
* [[Creation/Dev/GScript/Understanding GUI Profiles|GUI Features: Understanding GUI profiles]]&lt;br /&gt;
* [[Image:Guicontrol_tab.png]] [[Creation/Dev/Creating Tabbed Window Panes|Creating Tabbed Window Panes]]&lt;br /&gt;
* [[Particle Engine|Particle Engine]]&lt;br /&gt;
* [[Creation/Dev/Graal v4 IRC|Graal IRC Scripting: Graal IRC Scripting Reference]]&lt;br /&gt;
* [[Creation/Dev/Troubleshooting Graal v4 IRC|Graal IRC Scripting: Troubleshooting Scripting Reference]]&lt;br /&gt;
* [[Creation/Dev/Database_Communication|Indexed Database Communication]]&lt;br /&gt;
* [[Vectors]] (3D)&lt;br /&gt;
* [[Creation/Dev/wordFilter|Word Filter]]&lt;br /&gt;
* [[Creation/Dev/GScript/Stefan_Wisdom|Stefan Wisdom]]&lt;br /&gt;
* [http://forums.graalonline.com/forums/showpost.php?p=1573674&amp;amp;postcount=6 Communicating with a webserver]&lt;br /&gt;
&lt;br /&gt;
'''Script Function List'''&lt;br /&gt;
&lt;br /&gt;
These are frequently updated, to get the latest list run Graal with the -listscriptfunctions option. You can also get help about script functions with the ''/scripthelp &amp;lt;string&amp;gt;'' command on RemoteControl chat.&lt;br /&gt;
* [[Creation/Dev/Script/Clientside_Functions|Client side]]&lt;br /&gt;
* [[Creation/Dev/Script Functions: NPC Server|Server side]]&lt;br /&gt;
&lt;br /&gt;
==External Links==&lt;br /&gt;
* [http://wiki.graal.us/Index New GScript Wiki]&lt;br /&gt;
* [http://gs2.graalstudios.com/ Twinny's Scripting Page]&lt;br /&gt;
* [[GScript IRC channel]] (non-official)&lt;br /&gt;
* [http://public.zodiacdev.com/index.php?title=Fowlplay4 Fowlplay4's tutorial]&lt;/div&gt;</summary>
		<author><name>Fowlplay4</name></author>
	</entry>
	<entry>
		<id>https://graalonline.net/index.php?title=Creation/Dev/GScript&amp;diff=17982</id>
		<title>Creation/Dev/GScript</title>
		<link rel="alternate" type="text/html" href="https://graalonline.net/index.php?title=Creation/Dev/GScript&amp;diff=17982"/>
		<updated>2011-03-05T06:41:09Z</updated>

		<summary type="html">&lt;p&gt;Fowlplay4: /* External Links */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Scripting Reference]]&lt;br /&gt;
==Introduction==&lt;br /&gt;
&lt;br /&gt;
'''GScript''' is [[Graal]]'s scripting language.&lt;br /&gt;
&lt;br /&gt;
Its syntax and some of its semantics might seem familiar to those who program in [[WikiPedia:C (Programming Language) |C]] or [[WikiPedia:Java_programming_language|Java]], it uses ECMA-Script syntax. In some ways it is more dynamic, e.g. supporting dynamicly joining and leaving of classes, and brings support for easy management of online game content.&lt;br /&gt;
&lt;br /&gt;
It is used for [[clientside]] tasks like [[GUI | GUI programming]], special effects and custom [[NPC weapon|weapons]], and [[serverside]] systems like player housing, complex baddies or pets.&lt;br /&gt;
&lt;br /&gt;
'''If you would like to contribute to the GraalBible's GScript documentation, you might want to [[Creation/Dev/GScript/Contribute|read this article]].'''&lt;br /&gt;
&lt;br /&gt;
==Documentation==&lt;br /&gt;
In your scripting quest, you may find the following articles to be of use:&lt;br /&gt;
&lt;br /&gt;
'''Basic information'''&lt;br /&gt;
* [[Creation/Dev/Script/Starting Guide|Starting Guide]]&lt;br /&gt;
* [[Creation/Dev/Script/Client|Functions, variables and objects (clientside)]] &lt;br /&gt;
* [[Image:Guicontrol_window.png|80px]] [[Creation/Dev/Script/Client/GuiControls_List|GUI Controls]]&lt;br /&gt;
&lt;br /&gt;
'''Tutorials'''&lt;br /&gt;
* [[Image:s_dummies.png|80px]] [[Creation/Dev/GScript/New Engine GScript for Dummies|New Engine GScript for Dummies]]&lt;br /&gt;
* [[Creation/Dev/Excalibur's scripting guide|Excalibur's Scripting Guide]]&lt;br /&gt;
&lt;br /&gt;
'''Specific Features'''&lt;br /&gt;
* [[Creation/Dev/GS1_To_GS2|GS1 To GS2: Guide for fixing scripts to work with the new engine]]&lt;br /&gt;
* [[Creation/Dev/Output Methods|Output methods]]&lt;br /&gt;
* [[Creation/Dev/Using Classes Effectively|Use of classes]]&lt;br /&gt;
* [[Creation/Dev/GScript/Constants|Constants]]&lt;br /&gt;
* [[Creation/Dev/GScript/Understanding GUI Profiles|GUI Features: Understanding GUI profiles]]&lt;br /&gt;
* [[Image:Guicontrol_tab.png]] [[Creation/Dev/Creating Tabbed Window Panes|Creating Tabbed Window Panes]]&lt;br /&gt;
* [[Particle Engine|Particle Engine]]&lt;br /&gt;
* [[Creation/Dev/Graal v4 IRC|Graal IRC Scripting: Graal IRC Scripting Reference]]&lt;br /&gt;
* [[Creation/Dev/Troubleshooting Graal v4 IRC|Graal IRC Scripting: Troubleshooting Scripting Reference]]&lt;br /&gt;
* [[Creation/Dev/Database_Communication|Indexed Database Communication]]&lt;br /&gt;
* [[Vectors]] (3D)&lt;br /&gt;
* [[Creation/Dev/wordFilter|Word Filter]]&lt;br /&gt;
* [[Creation/Dev/GScript/Stefan_Wisdom|Stefan Wisdom]]&lt;br /&gt;
* [http://forums.graalonline.com/forums/showpost.php?p=1573674&amp;amp;postcount=6 Communicating with a webserver]&lt;br /&gt;
&lt;br /&gt;
'''Script Function List'''&lt;br /&gt;
&lt;br /&gt;
These are frequently updated, to get the latest list run Graal with the -listscriptfunctions option. You can also get help about script functions with the ''/scripthelp &amp;lt;string&amp;gt;'' command on RemoteControl chat.&lt;br /&gt;
* [[Creation/Dev/Script/Clientside_Functions|Client side]]&lt;br /&gt;
* [[Creation/Dev/Script Functions: NPC Server|Server side]]&lt;br /&gt;
&lt;br /&gt;
==External Links==&lt;br /&gt;
* [http://skyld.vip.graal.net Old GScript Wiki] (404)&lt;br /&gt;
* [http://wiki.graal.us/Index New GScript Wiki]&lt;br /&gt;
* [http://gs2.graalstudios.com/ Twinny's Scripting Page]&lt;br /&gt;
* [[GScript IRC channel]] (non-official)&lt;br /&gt;
* [http://public.zodiacdev.com/index.php?title=Fowlplay4 Fowlplay4's tutorial]&lt;/div&gt;</summary>
		<author><name>Fowlplay4</name></author>
	</entry>
	<entry>
		<id>https://graalonline.net/index.php?title=Creation/Dev/Script/Clientside_Functions&amp;diff=17964</id>
		<title>Creation/Dev/Script/Clientside Functions</title>
		<link rel="alternate" type="text/html" href="https://graalonline.net/index.php?title=Creation/Dev/Script/Clientside_Functions&amp;diff=17964"/>
		<updated>2011-02-28T22:33:51Z</updated>

		<summary type="html">&lt;p&gt;Fowlplay4: /* Global */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Scripting Reference]]&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;2&amp;quot; width=&amp;quot;50%&amp;quot;&lt;br /&gt;
|[R]&lt;br /&gt;
| denotes it is read-only.&lt;br /&gt;
|-&lt;br /&gt;
|[3D]&lt;br /&gt;
| denotes it is a Graal3D function.&lt;br /&gt;
|-&lt;br /&gt;
|[opengl]&lt;br /&gt;
| denotes it is functional only in opengl mode.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Variables==&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;2&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
| '''Variable'''&lt;br /&gt;
|width=&amp;quot;100px&amp;quot;|'''Type'''&lt;br /&gt;
| '''Notes'''&lt;br /&gt;
|-&lt;br /&gt;
| allfeatures&lt;br /&gt;
| ''integer [R]''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| allplayerscount&lt;br /&gt;
| ''integer [R]''&lt;br /&gt;
| Returns the count of all players on your playerlist, including IRC bots.&lt;br /&gt;
|-&lt;br /&gt;
| allrenderobjecttypes&lt;br /&gt;
| ''integer [R]''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| allstats &lt;br /&gt;
| ''integer [R]''&lt;br /&gt;
| Used with showstats() in order to show all stats.&lt;br /&gt;
|-&lt;br /&gt;
| canspin&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| Returns true of false if the player has spin attack.&lt;br /&gt;
|-&lt;br /&gt;
| carriesblackstone&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| Returns whether the player is carrying a black stone.&lt;br /&gt;
|-&lt;br /&gt;
| carriesbush&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| Returns whether the player is carrying a bush.&lt;br /&gt;
|-&lt;br /&gt;
| carriesnpc&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| Returns whether the player is carrying an NPC&lt;br /&gt;
|-&lt;br /&gt;
| carriessign&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| Returns whether the player is carrying a sign.&lt;br /&gt;
|-&lt;br /&gt;
| carriesstone&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| Returns whether the player is carrying a stone.&lt;br /&gt;
|-&lt;br /&gt;
| carriesvase&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| Returns whether the player is carrying a vase.&lt;br /&gt;
|-&lt;br /&gt;
| downloadfile&lt;br /&gt;
| ''string [R]''&lt;br /&gt;
| Returns the currently downloaded file.&lt;br /&gt;
|-&lt;br /&gt;
| downloadpos&lt;br /&gt;
| ''integer [R]''&lt;br /&gt;
| Returns the position of the currently downloaded file.&lt;br /&gt;
|-&lt;br /&gt;
| downloadsize&lt;br /&gt;
| ''integer [R]''&lt;br /&gt;
| Returns the size of the currently downloaded file.&lt;br /&gt;
|-&lt;br /&gt;
| editingmission&lt;br /&gt;
| ''boolean''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| emoticonchar&lt;br /&gt;
| ''string [R]''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| focusx&lt;br /&gt;
| ''float [R]''&lt;br /&gt;
| Position of the camera in tile units.&lt;br /&gt;
|-&lt;br /&gt;
| focusy&lt;br /&gt;
| ''float [R]''&lt;br /&gt;
| Position of the camera in tile units.&lt;br /&gt;
|-&lt;br /&gt;
| ghostsnear&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| If a ghost(observer) is in the same level as the player.&lt;br /&gt;
|-&lt;br /&gt;
| graalplugincookie&lt;br /&gt;
| ''string [R]''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| graalversion&lt;br /&gt;
| ''float [R]''&lt;br /&gt;
| Version of Graal the player is using.&lt;br /&gt;
|-&lt;br /&gt;
| gravity&lt;br /&gt;
| ''float''&lt;br /&gt;
| The gravity value that effects how fast projectiles fall. It universally effects all projectiles.&lt;br /&gt;
|-&lt;br /&gt;
| installedlanguages&lt;br /&gt;
| ''string [R]''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| isapplicationactive&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| Is Graal window active?&lt;br /&gt;
|-&lt;br /&gt;
| iscarrying&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| Returns true of false if the player is carrying something.&lt;br /&gt;
|-&lt;br /&gt;
| isfocused&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| isgraal3d&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| isgraalplugin&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| isleader&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| Player was the first to enter the level.&lt;br /&gt;
|-&lt;br /&gt;
| isonmap&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| Player is on a map.&lt;br /&gt;
|-&lt;br /&gt;
| isopengl&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| Graal is in opengl mode.&lt;br /&gt;
|-&lt;br /&gt;
| isrecordingvideo&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| Player is currently recording(alt+6) Graal.&lt;br /&gt;
|-&lt;br /&gt;
| jpegquality&lt;br /&gt;
| ''integer''&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| isgraalplugin&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| lastdownloadfile&lt;br /&gt;
| ''string [R]''&lt;br /&gt;
| The last file downloaded.&lt;br /&gt;
|-&lt;br /&gt;
| leftmousebutton&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| If the left mouse button is pressed.&lt;br /&gt;
|-&lt;br /&gt;
| leftmousebuttonglobal&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| If the left mouse button is pressed. Returns whether mouse is in focus of GUIs or not.&lt;br /&gt;
|-&lt;br /&gt;
| levelorgx&lt;br /&gt;
| ''float [R]''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| levelorgy&lt;br /&gt;
| ''float [R]''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| lighteffectsenabled&lt;br /&gt;
| ''boolean''&lt;br /&gt;
| Whether the player has their lights enabled via options.&lt;br /&gt;
|-&lt;br /&gt;
| middlemousebutton&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| If the middle mouse button is pressed&lt;br /&gt;
|-&lt;br /&gt;
| middlemousebuttonglobal&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| If the middle mouse button is pressed. Returns whether mouse is in focus of GUIs or not.&lt;br /&gt;
|-&lt;br /&gt;
| mousebuttons &lt;br /&gt;
| ''integer [R]''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| mousebuttonsglobal&lt;br /&gt;
| ''integer [R]''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| mousepitch&lt;br /&gt;
| ''float [R] [3D]''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| mousescreenx &lt;br /&gt;
| ''integer''&lt;br /&gt;
| Position of the mouse in the Graal screen, in pixel units on the x-axis.&lt;br /&gt;
|-&lt;br /&gt;
| mousescreeny &lt;br /&gt;
| ''integer''&lt;br /&gt;
| Position of the mouse in the Graal screen, in pixel units on the y-axis.&lt;br /&gt;
|-&lt;br /&gt;
| mousewheeldelta&lt;br /&gt;
| ''integer [R]''&lt;br /&gt;
| How much the mouse wheel has been scrolled.&lt;br /&gt;
|-&lt;br /&gt;
| mousex&lt;br /&gt;
| ''float''&lt;br /&gt;
| Position of the mouse in the level, in tile units, on the x-axis.&lt;br /&gt;
|-&lt;br /&gt;
| mousey&lt;br /&gt;
| ''float''&lt;br /&gt;
| Position of the mouse in the level, in tile units, on the y-axis&lt;br /&gt;
|-&lt;br /&gt;
| mouseyaw&lt;br /&gt;
| ''float [R] [3D]''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| musiclen &lt;br /&gt;
| ''integer [R]''&lt;br /&gt;
| Length of current playing '''MP3'''&lt;br /&gt;
|-&lt;br /&gt;
| musicpos&lt;br /&gt;
| ''integer [R]''&lt;br /&gt;
| Position of current playing '''MP3'''&lt;br /&gt;
|-&lt;br /&gt;
| particleeffectsenabled&lt;br /&gt;
| ''boolean''&lt;br /&gt;
| If player has particles enabled in their options.&lt;br /&gt;
|-&lt;br /&gt;
| rightmousebutton &lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| If the right mouse button is pressed&lt;br /&gt;
|-&lt;br /&gt;
| rightmousebuttonglobal &lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| If the right mouse button is pressed. Returns whether mouse is in focus of GUIs or not.&lt;br /&gt;
|-&lt;br /&gt;
| screenheight&lt;br /&gt;
| ''integer [R]''&lt;br /&gt;
| Height of the Graal screen in pixel units.&lt;br /&gt;
|-&lt;br /&gt;
| screenwidth&lt;br /&gt;
| ''integer [R]''&lt;br /&gt;
| Width of the Graal screen in pixel units.&lt;br /&gt;
|-&lt;br /&gt;
| scriptedcontrols &lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| scriptedplayerlist&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| Whether the player has the scripted playerlist enabled.&lt;br /&gt;
|-&lt;br /&gt;
| scriptlogwritetoreadonly&lt;br /&gt;
| ''boolean''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| selectedlistplayers&lt;br /&gt;
| ''object''&lt;br /&gt;
| An object of all players selected on the playerlist.&lt;br /&gt;
|-&lt;br /&gt;
| selectedsword &lt;br /&gt;
| ''integer''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| selectedweapon &lt;br /&gt;
| ''integer''&lt;br /&gt;
| Index of the currently selected weapon.&lt;br /&gt;
|-&lt;br /&gt;
| servername&lt;br /&gt;
| ''string [R]''&lt;br /&gt;
| Name of the server.&lt;br /&gt;
|-&lt;br /&gt;
| serverstartconnect &lt;br /&gt;
| ''string''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| serverstartparams &lt;br /&gt;
| ''string''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| shotbybaddy&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| If the player is shot by a baddy(default) arrow.&lt;br /&gt;
|-&lt;br /&gt;
| shotbyplayer&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| If the player is shot by another players arrow.&lt;br /&gt;
|-&lt;br /&gt;
| showterraingrid&lt;br /&gt;
| ''boolean''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| spritesimage&lt;br /&gt;
| ''string''&lt;br /&gt;
| Filename of the currently set sprite image.&lt;br /&gt;
|-&lt;br /&gt;
| statusimage&lt;br /&gt;
| ''string''&lt;br /&gt;
| Filename of the currently set state image.&lt;br /&gt;
|-&lt;br /&gt;
| timevar&lt;br /&gt;
| ''integer [R].''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| timevar2&lt;br /&gt;
| ''float [R]''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| timevar3&lt;br /&gt;
| ''float [R] [3D]''&lt;br /&gt;
| Synchronized time which works on both server and client-side, precision is milliseconds.&lt;br /&gt;
|-&lt;br /&gt;
| wasshooted&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| If the player is shot by a default arrow.&lt;br /&gt;
|-&lt;br /&gt;
| waterheight&lt;br /&gt;
| ''float''&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| weapons&lt;br /&gt;
| ''object [R]''&lt;br /&gt;
| all the players weapons, this includes login inherited weapons.&lt;br /&gt;
|-&lt;br /&gt;
| weaponsenabled&lt;br /&gt;
| ''boolean''&lt;br /&gt;
| If the players weapons are enabled via disableweapons()/enableweapons().&lt;br /&gt;
|-&lt;br /&gt;
| weathereffectsenabled&lt;br /&gt;
| ''boolean''&lt;br /&gt;
| If weather is enabled in the players options.&lt;br /&gt;
|-&lt;br /&gt;
| worldclockstopped&lt;br /&gt;
| ''boolean''&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| worldhour &lt;br /&gt;
| ''integer''&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| worldminute &lt;br /&gt;
| ''float''&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| worldminutesofday &lt;br /&gt;
| ''float''&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| worldrealsecondsperday &lt;br /&gt;
| ''float''&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Functions=&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;2&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
| '''Variable'''&lt;br /&gt;
|width=&amp;quot;100px&amp;quot;|'''Type'''&lt;br /&gt;
| '''Notes'''&lt;br /&gt;
|-&lt;br /&gt;
| addcontrol(object)&lt;br /&gt;
|&lt;br /&gt;
| adds 'object' to the parent control.&lt;br /&gt;
|-&lt;br /&gt;
| addmaterialmapping(string, string)&lt;br /&gt;
| [3D]&lt;br /&gt;
| returns boolean.&lt;br /&gt;
|-&lt;br /&gt;
| addtiledef(string image, string prefix, int format)&lt;br /&gt;
| &lt;br /&gt;
| Adds a tileset definition with the supplied tileset image, level prefix and tileset format (0=pics1, 1=new world, 5=terrain).&lt;br /&gt;
|-&lt;br /&gt;
| addtiledef2(string image, string prefix, int x, int y)&lt;br /&gt;
| &lt;br /&gt;
| Overlays an image on the tileset with the supplied tileset image and level prefix. Parameters 'x' and 'y' represent the x and y position on the tileset of where to place the new image.&lt;br /&gt;
|-&lt;br /&gt;
| aindexof(float, array)&lt;br /&gt;
| &lt;br /&gt;
| Returns integer - the position of 'float' in the array.&lt;br /&gt;
|-&lt;br /&gt;
| arccos(float)&lt;br /&gt;
| &lt;br /&gt;
| Returns float - the arc cosine of 'float'.&lt;br /&gt;
|-&lt;br /&gt;
| arcsin(float)&lt;br /&gt;
| &lt;br /&gt;
| Returns float - the arc sine of 'float'.&lt;br /&gt;
|-&lt;br /&gt;
| attachplayertoobj(integer1, integer2)&lt;br /&gt;
| &lt;br /&gt;
| Attaches the player to the object with the matching ID where integer1 is the object type (currently only NPCs - 0) and integer2 is the ID of the desired object.&lt;br /&gt;
|-&lt;br /&gt;
| base64decode(string)&lt;br /&gt;
| &lt;br /&gt;
| Returns string - Decodes a base64 string.&lt;br /&gt;
|-&lt;br /&gt;
| base64encode(string)&lt;br /&gt;
| &lt;br /&gt;
| Returns string - Encodes string in to several characters of a 64 printable character set (A-Z, a-z, 0-9, + and /, while &amp;quot;=&amp;quot; is a special suffix code)&lt;br /&gt;
|-&lt;br /&gt;
| boxcontains(string, string)&lt;br /&gt;
| &lt;br /&gt;
| returns boolean.&lt;br /&gt;
|-&lt;br /&gt;
| boxcontainsvector(string, string)&lt;br /&gt;
| &lt;br /&gt;
| returns boolean&lt;br /&gt;
|-&lt;br /&gt;
| boxintersect(string, string)&lt;br /&gt;
| &lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| boxoverlaps(string, string)&lt;br /&gt;
| &lt;br /&gt;
| returns boolean&lt;br /&gt;
|-&lt;br /&gt;
| boxscale(string, string)&lt;br /&gt;
| &lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| callnpc(int index, string function)&lt;br /&gt;
| &lt;br /&gt;
| Calls a function from an NPC where 'index' is the NPC's index and 'function' is the function name.&lt;br /&gt;
|-&lt;br /&gt;
| callweapon(int index, string function)&lt;br /&gt;
| &lt;br /&gt;
| Calls a function from a weapon where 'index' is the weapon's index and 'function' is the function name.&lt;br /&gt;
|-&lt;br /&gt;
| castray({x,y,x}, {x,y,z}, string type)&lt;br /&gt;
| [3D]&lt;br /&gt;
| returns object - specify the start and end of the ray, and the object types (e.g. &amp;quot;staticts,terrain,interior&amp;quot;)&lt;br /&gt;
|-&lt;br /&gt;
| checksum(string)&lt;br /&gt;
| &lt;br /&gt;
| returns float&lt;br /&gt;
|-&lt;br /&gt;
| contains(string2, string1)&lt;br /&gt;
| &lt;br /&gt;
| returns boolean - True if string1 is contained within string2.&lt;br /&gt;
|-&lt;br /&gt;
| copystrings(string, string)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| cursoroff()&lt;br /&gt;
| [opengl]&lt;br /&gt;
| Disables the visible mouse cursor.&lt;br /&gt;
|-&lt;br /&gt;
| cursoron()&lt;br /&gt;
| [opengl]&lt;br /&gt;
| Enables the visible mouse cursor.&lt;br /&gt;
|-&lt;br /&gt;
| degtorad(float)&lt;br /&gt;
| &lt;br /&gt;
| returns float - Converts angle measurements of degrees to radians&lt;br /&gt;
|-&lt;br /&gt;
| detachplayer()&lt;br /&gt;
| &lt;br /&gt;
| Detaches a player from an attached object.&lt;br /&gt;
|-&lt;br /&gt;
| disabledefmovement()&lt;br /&gt;
| &lt;br /&gt;
| Disables the default movement system and controls(including weapons, sword, grab. Does not include Q-menu, pause, map...).&lt;br /&gt;
|-&lt;br /&gt;
| disablemap()&lt;br /&gt;
| &lt;br /&gt;
| Disables the default map (M).&lt;br /&gt;
|-&lt;br /&gt;
| disablepause()&lt;br /&gt;
| &lt;br /&gt;
| Disables the default pause (P).&lt;br /&gt;
|-&lt;br /&gt;
| disableselectweapons()&lt;br /&gt;
| &lt;br /&gt;
| Disables the default Q-menu (Q).&lt;br /&gt;
|-&lt;br /&gt;
| disableweapons()&lt;br /&gt;
| &lt;br /&gt;
| Disables the default sword (S) and weapons (D).&lt;br /&gt;
|-&lt;br /&gt;
| echo(string)&lt;br /&gt;
| &lt;br /&gt;
| echos 'string' to the debug window(F2).&lt;br /&gt;
|-&lt;br /&gt;
| enabledefmovement()&lt;br /&gt;
| &lt;br /&gt;
| Enables the default movement system.&lt;br /&gt;
|-&lt;br /&gt;
| [[Creation/Dev/Script/Functions/enablefeatures(int)|enablefeatures(int)]]&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| enablemap()&lt;br /&gt;
| &lt;br /&gt;
| Enables the default map system(M).&lt;br /&gt;
|-&lt;br /&gt;
| enablepause()&lt;br /&gt;
| &lt;br /&gt;
| Enables the default pause system(P).&lt;br /&gt;
|-&lt;br /&gt;
| enableselectweapons()&lt;br /&gt;
| &lt;br /&gt;
| Enables the default Q-menu(Q).&lt;br /&gt;
|-&lt;br /&gt;
| enableweapons()&lt;br /&gt;
| &lt;br /&gt;
| Enables the default sword(S) and weapons(D).&lt;br /&gt;
|-&lt;br /&gt;
| escapestring(string)&lt;br /&gt;
| &lt;br /&gt;
| returns string - adds \\ in front of &amp;quot;, ' and \\, and removes non-printable characters&lt;br /&gt;
|-&lt;br /&gt;
| explodebomb(integer)&lt;br /&gt;
| &lt;br /&gt;
| explodes the bomb with the id of 'integer'.&lt;br /&gt;
|-&lt;br /&gt;
| extractfilebase(string)&lt;br /&gt;
| &lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| extractfileext(string)&lt;br /&gt;
| &lt;br /&gt;
| Takes in a file name, and returns its extension. &lt;br /&gt;
|-&lt;br /&gt;
| extractfilepath(string)&lt;br /&gt;
| &lt;br /&gt;
| returns string &lt;br /&gt;
|-&lt;br /&gt;
| fileexists(string)&lt;br /&gt;
| &lt;br /&gt;
| returns boolean of whether the file 'str' exists in the players Graal/ directory(does not search subfolders).&lt;br /&gt;
|-&lt;br /&gt;
| filesize(string)&lt;br /&gt;
| &lt;br /&gt;
| Returns the size(int) of the file 'string' in the players Graal/ directory(does not search subfolders).&lt;br /&gt;
|-&lt;br /&gt;
| fileupdate(string)&lt;br /&gt;
| &lt;br /&gt;
| returns boolean&lt;br /&gt;
|-&lt;br /&gt;
| findani(string)&lt;br /&gt;
| &lt;br /&gt;
| returns object&lt;br /&gt;
|-&lt;br /&gt;
| findfiles(string, integer)&lt;br /&gt;
| &lt;br /&gt;
| returns object&lt;br /&gt;
|-&lt;br /&gt;
| findlevel(string)&lt;br /&gt;
| &lt;br /&gt;
| returns object&lt;br /&gt;
|-&lt;br /&gt;
| findnearestplayer(float1, float2)&lt;br /&gt;
| &lt;br /&gt;
| Returns the closest player's object relevant to float1 and float2.&lt;br /&gt;
|-&lt;br /&gt;
| findnearestplayers(float, float)&lt;br /&gt;
| &lt;br /&gt;
| Returns the closest players' object relevant to float1 and float2.&lt;br /&gt;
|-&lt;br /&gt;
| findnpcbyid(integer)&lt;br /&gt;
|&lt;br /&gt;
| Returns the NPC object with the ID of 'int'.&lt;br /&gt;
|-&lt;br /&gt;
| findpathinarray(obj1, obj2, obj3, obj4, obj5, int, int, int)&lt;br /&gt;
|&lt;br /&gt;
| Returns object - Simple path-finding: Obj1 being tiles that allow walking, Obj2 being tiles that don't allow walking, Obj3; tiles that shouldn't be allowed to walked on, Obj4; tiles that are able to be walked on, Obj5; tiles where we may stop. Integers are relevant to the startx, starty and maximum path length. - Arrays for allowed/non-allowed tiles are only checked if they aren't null.&lt;br /&gt;
|-&lt;br /&gt;
| findplayer(string)&lt;br /&gt;
|&lt;br /&gt;
| Returns the player object with the account equal to string.&lt;br /&gt;
|-&lt;br /&gt;
| findplayerbycommunityname(string)&lt;br /&gt;
|&lt;br /&gt;
| Returns the player object with the community name equal to string.&lt;br /&gt;
|-&lt;br /&gt;
| findplayerbyid(integer)&lt;br /&gt;
|&lt;br /&gt;
| Returns the player object with the ID equal to integer.&lt;br /&gt;
|-&lt;br /&gt;
| findweapon(string)&lt;br /&gt;
|&lt;br /&gt;
| Returns the weapon object with the name equal to string.&lt;br /&gt;
|-&lt;br /&gt;
| format(string, string, ...)&lt;br /&gt;
|&lt;br /&gt;
| See [[Creation/Dev/Output_Methods#format.28.29_function|format()]]. &lt;br /&gt;
|- &lt;br /&gt;
| format2(string, array)&lt;br /&gt;
| &lt;br /&gt;
| Like format(), except that this expects the format string and an array of variables instead of passing the variables as separate parameters.&lt;br /&gt;
|-&lt;br /&gt;
| freefileresources(string)&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| freezeplayer(float)&lt;br /&gt;
|&lt;br /&gt;
| Freezes the player for the number of seconds specified by float.&lt;br /&gt;
|-&lt;br /&gt;
| get3dobjectat(float, float, boolean)&lt;br /&gt;
| [3D]&lt;br /&gt;
| Gets the 3d object at the specified screen position, third parameter true if it should do box collision.&lt;br /&gt;
|-&lt;br /&gt;
| get3dobjectatmouse(boolean)&lt;br /&gt;
| [3D]&lt;br /&gt;
| Gets the 3d object at the mouse.  Parameter true if it should do box collision.&lt;br /&gt;
|-&lt;br /&gt;
| get3dobjectbyray(string, string)&lt;br /&gt;
| [3D]&lt;br /&gt;
| returns object&lt;br /&gt;
|-&lt;br /&gt;
| get3dobjectsbybox(string, string)&lt;br /&gt;
| [3D]&lt;br /&gt;
| 1st parameter defines the box {minx,miny,minz, maxx,maxy,maxz}.  Second parameter specifies the type of object to find (e.g. &amp;quot;staticts,terrain,interior&amp;quot;)&lt;br /&gt;
|-&lt;br /&gt;
| get3dscreenposition(string, boolean)&lt;br /&gt;
| [3D]&lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| getanglesfromvector({x, y, z})&lt;br /&gt;
|&lt;br /&gt;
| Returns an array that contains the angles the 3D vector {x, y, z} makes with the X-Y and X-Z axes.&lt;br /&gt;
|-&lt;br /&gt;
| getascii(string)&lt;br /&gt;
|&lt;br /&gt;
| Returns the [http://www.asciitable.com/ ascii] code for string.&lt;br /&gt;
|-&lt;br /&gt;
| getbasepackage()&lt;br /&gt;
|&lt;br /&gt;
| returns object&lt;br /&gt;
|-&lt;br /&gt;
| getboxcenter(string)&lt;br /&gt;
|&lt;br /&gt;
| Returns an array containing the center of a 3D box specified by string ({x0,y0,z0,x1,y1,z1,...}).&lt;br /&gt;
|-&lt;br /&gt;
| getdesktopresolution()&lt;br /&gt;
|&lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| getdisplaydevicelist()&lt;br /&gt;
|&lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| getdownloadedupdatepackagesize()&lt;br /&gt;
|&lt;br /&gt;
| Returns the size of the downloaded update package.&lt;br /&gt;
|-&lt;br /&gt;
| getdownloadingpackage()&lt;br /&gt;
|&lt;br /&gt;
| Returns a reference to current update package being downloaded.&lt;br /&gt;
|-&lt;br /&gt;
| getdownloadingpackagescount()&lt;br /&gt;
|&lt;br /&gt;
| Returns a count of the number of update packages to download.&lt;br /&gt;
|-&lt;br /&gt;
| getdropz(string)&lt;br /&gt;
|&lt;br /&gt;
| returns float&lt;br /&gt;
|-&lt;br /&gt;
| getExtension(string)&lt;br /&gt;
|&lt;br /&gt;
| This function is the same as extractFileExt().  Takes in a file name, and returns its extension.&lt;br /&gt;
|-&lt;br /&gt;
| getfilemodtime(string)&lt;br /&gt;
|&lt;br /&gt;
| Returns a timestamp of when the file was last modified (in unix time compatible to timevar2). This function accepts both exact file path and plain file name.&lt;br /&gt;
|-&lt;br /&gt;
| gethttprequest(string, integer, string)&lt;br /&gt;
| &lt;br /&gt;
| returns object (This function is the same as requestHttp())&lt;br /&gt;
|-&lt;br /&gt;
| getimgheight(string)&lt;br /&gt;
|&lt;br /&gt;
| Returns the height (in pixels) of the filename indicated by string.&lt;br /&gt;
|-&lt;br /&gt;
| getimgpixel(string, integer, integer)&lt;br /&gt;
|&lt;br /&gt;
| returns object&lt;br /&gt;
|-&lt;br /&gt;
| getimgwidth(string)&lt;br /&gt;
|&lt;br /&gt;
| Returns the width(in pixels) of the filename indicated by string.&lt;br /&gt;
|-&lt;br /&gt;
| getkeycode(string)&lt;br /&gt;
|&lt;br /&gt;
| Returns the keycode of the key indicated by string.  The keycode returned can be used in keydown2().&lt;br /&gt;
|-&lt;br /&gt;
| getloginaccountname()&lt;br /&gt;
|&lt;br /&gt;
| Presumably used for the login server.  Use player.account instead.&lt;br /&gt;
|-&lt;br /&gt;
| getmapx(string)&lt;br /&gt;
| &lt;br /&gt;
| Gets the x coordinate location in the gmap of the level indicated by string.  The top-left level starts at (0, 0).&lt;br /&gt;
|-&lt;br /&gt;
| getmapy(string)&lt;br /&gt;
|&lt;br /&gt;
| Gets the y coordinate location in the gmap of the level indicated by string.  The top-left level starts at (0, 0).&lt;br /&gt;
|-&lt;br /&gt;
| getmusicfilename()&lt;br /&gt;
|&lt;br /&gt;
| Returns the filename of the music currently playing.&lt;br /&gt;
|-&lt;br /&gt;
| getmusicstatus()&lt;br /&gt;
|&lt;br /&gt;
| Returns the status of the music currently playing.&lt;br /&gt;
|-&lt;br /&gt;
| getmusictags()&lt;br /&gt;
|&lt;br /&gt;
| Returns the tags of the music currently playing.  This function can be used to retrieve the title and artist info of the music.&lt;br /&gt;
|-&lt;br /&gt;
| getnearestplayer(float, float)&lt;br /&gt;
|&lt;br /&gt;
| Deprecated.  Use findnearestplayer() instead.&lt;br /&gt;
|-&lt;br /&gt;
| getnearestplayers(float, float)&lt;br /&gt;
|&lt;br /&gt;
| Deprecated.  Use findnearestplayers() instead.&lt;br /&gt;
|-&lt;br /&gt;
| getpackagesdownloadcomplete()&lt;br /&gt;
|&lt;br /&gt;
| Returns 'true' if the package downloads are complete.&lt;br /&gt;
|-&lt;br /&gt;
| getpackagesdownloaded()&lt;br /&gt;
|&lt;br /&gt;
| Returns 'true' if the most recent packages are already downloaded.&lt;br /&gt;
|-&lt;br /&gt;
| getplatform()&lt;br /&gt;
|&lt;br /&gt;
| Returns the platform that the player is using.  (i.e. windows, mac, or linux)&lt;br /&gt;
|-&lt;br /&gt;
| getresolutionlist(string)&lt;br /&gt;
|&lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| getservername()&lt;br /&gt;
|&lt;br /&gt;
| Returns the name of the server the player is currently connected to.&lt;br /&gt;
|-&lt;br /&gt;
| getstringkeys(string)&lt;br /&gt;
|&lt;br /&gt;
| Returns an array of the variables that begins with the supplied string.&lt;br /&gt;
|-&lt;br /&gt;
| getterraintexture(float, float)&lt;br /&gt;
|&lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| getterraintextureindex(float, float)&lt;br /&gt;
|&lt;br /&gt;
| returns integer&lt;br /&gt;
|-&lt;br /&gt;
| gettextheight(float zoom, string style, string font)&lt;br /&gt;
|&lt;br /&gt;
| returns integer - The height in pixels of the text with the given zoom, style and font.&lt;br /&gt;
|-&lt;br /&gt;
| gettextwidth(float zoom, string style, string font, string text)&lt;br /&gt;
|&lt;br /&gt;
| returns integer - The width of the text with the given zoom, style, font and text.&lt;br /&gt;
|-&lt;br /&gt;
| gettileset()&lt;br /&gt;
|&lt;br /&gt;
| returns string - the current main tileset (pics1.png, picso.png etc.)&lt;br /&gt;
|-&lt;br /&gt;
| gettilesettype()&lt;br /&gt;
|&lt;br /&gt;
| returns integer - the current tileset type (pics1.png:0, picso.png:5 etc.)&lt;br /&gt;
|-&lt;br /&gt;
| gettotalupdatepackagesize()&lt;br /&gt;
|&lt;br /&gt;
| returns integer - The total size of the update packages.&lt;br /&gt;
|-&lt;br /&gt;
| getupdatepackage(string name)&lt;br /&gt;
|&lt;br /&gt;
| returns object - A reference to the update package with the given name.&lt;br /&gt;
|-&lt;br /&gt;
| getvectorfromangles(float, float)&lt;br /&gt;
|&lt;br /&gt;
| returns string&lt;br /&gt;
|- &lt;br /&gt;
| getz(float, float)&lt;br /&gt;
|&lt;br /&gt;
| returns float&lt;br /&gt;
|-&lt;br /&gt;
| graalcontrolhasfocus(bool)&lt;br /&gt;
|&lt;br /&gt;
| returns boolean - Whether or not the graal control has focus.  Parameter says if it should also check if the chat bar has the focus&lt;br /&gt;
|-&lt;br /&gt;
| hideplayer(float time)&lt;br /&gt;
|&lt;br /&gt;
| Hides player for the specified amount of time.&lt;br /&gt;
|-&lt;br /&gt;
| hidesword(float time)&lt;br /&gt;
|&lt;br /&gt;
| Hides the player's sword for the specified amount of time.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;  hitnpc(int, float, float, float)&lt;br /&gt;
  hitobjects(float, float, float)&lt;br /&gt;
  hitplayer(int, float, float, float)&lt;br /&gt;
  isadminguild(str) - returns boolean&lt;br /&gt;
  isclassloaded(str) - returns boolean&lt;br /&gt;
  iscursoron() - returns boolean&lt;br /&gt;
  isdevicefullscreenonly(str) - returns boolean&lt;br /&gt;
  isdownloading(str) - returns boolean - checks if a file is currently downloaded or requested from the server&lt;br /&gt;
  isdownloadingfiles() - returns boolean - checks if Graal is currently downloading or requesting files from the server&lt;br /&gt;
  isfullscreenmode() - returns boolean&lt;br /&gt;
  isimgpixeltransparent(str, int, int) - returns boolean&lt;br /&gt;
  isimgrectangletransparent(str, int, int, int, int) - returns boolean&lt;br /&gt;
  ismusicplaying() - returns boolean&lt;br /&gt;
  isobject(str) - returns boolean&lt;br /&gt;
  issoundplaying(str) - returns boolean&lt;br /&gt;
  keydown(int) - returns boolean&lt;br /&gt;
  keydown2(int, bool) - returns boolean&lt;br /&gt;
  keydown2global(int, bool) - returns boolean&lt;br /&gt;
  keydownglobal(int) - returns boolean&lt;br /&gt;
  keyname(int) - returns string&lt;br /&gt;
  lay2(str, float, float)&lt;br /&gt;
  lightscene() - returns boolean&lt;br /&gt;
  loadclass(str)&lt;br /&gt;
  loadmap(str)&lt;br /&gt;
  loadtranslation(str)&lt;br /&gt;
  lowercase(str) - returns string&lt;br /&gt;
  ltmfs(bool)&lt;br /&gt;
  ltmmax(float, float)&lt;br /&gt;
  ltmmin(float, float)&lt;br /&gt;
  makescreenshot2(str, int, float, float, float, int, int)&lt;br /&gt;
  matrixcreate(str, str) - returns string&lt;br /&gt;
  matrixcreatefromeuler(str) - returns string&lt;br /&gt;
  matrixmulpoint(str, str) - returns string&lt;br /&gt;
  matrixmultiply(str, str) - returns string&lt;br /&gt;
  matrixmulvector(str, str) - returns string&lt;br /&gt;
  md5(str) - returns string&lt;br /&gt;
  noplayerkilling()&lt;br /&gt;
  onwall(float, float) - returns boolean&lt;br /&gt;
  onwall2(float, float, float, float) - returns boolean&lt;br /&gt;
  onwater(float, float) - returns boolean&lt;br /&gt;
  onwater2(float, float, float, float) - returns boolean&lt;br /&gt;
  opengraalurl(str)&lt;br /&gt;
  openurl(str)&lt;br /&gt;
  openurl2(str, int, int)&lt;br /&gt;
  play(str)&lt;br /&gt;
  play2(str, float, float, float)&lt;br /&gt;
  play3d(str, bool, str, str)&lt;br /&gt;
  playlooped(str)&lt;br /&gt;
  playlooped2(str, float, float, float)&lt;br /&gt;
  popdialog()&lt;br /&gt;
  pushdialog(obj)&lt;br /&gt;
  putleaps(int, float, float)&lt;br /&gt;
  radtodeg(float) - returns float&lt;br /&gt;
  randomstring(str) - returns string&lt;br /&gt;
  removetiledefs(str)&lt;br /&gt;
  replaceani(str, str)&lt;br /&gt;
  requestfiledeletion(str)&lt;br /&gt;
  requestfilerename(str, str)&lt;br /&gt;
  requestfilesmove(str, str)&lt;br /&gt;
  requesthttp(str, int, str) - returns object&lt;br /&gt;
  requesttext(str, str)&lt;br /&gt;
  requesturl(str) - returns object&lt;br /&gt;
  resetfocus()&lt;br /&gt;
  rotationadd(str, str) - returns string&lt;br /&gt;
  rotationaddeuler(str, str) - returns string&lt;br /&gt;
  rotationfromeuler(str) - returns string&lt;br /&gt;
  rotationsub(str, str) - returns string&lt;br /&gt;
  rotationtoeuler(str) - returns string&lt;br /&gt;
  rungarbagecollector()&lt;br /&gt;
  savelog(str)&lt;br /&gt;
  say(int)&lt;br /&gt;
  say2(str)&lt;br /&gt;
  screenx(float, float) - returns integer&lt;br /&gt;
  screeny(float, float) - returns integer&lt;br /&gt;
  selectfilefordownload(str) - opens the select-file-dialog for the download location of files (from scripted RC)&lt;br /&gt;
  selectfileforupload() - opens the select-file-dialog for uploading of files (into scripted RC)&lt;br /&gt;
  sendrpgmessage(str)&lt;br /&gt;
  sendtext(str, str, params...)&lt;br /&gt;
  sendtorc(str)&lt;br /&gt;
  serverwarp(str)&lt;br /&gt;
  setani(str, str)&lt;br /&gt;
  setbeltcolor(str)&lt;br /&gt;
  setcoatcolor(str)&lt;br /&gt;
  setcontentcontrol(obj)&lt;br /&gt;
  setcursor2(str)&lt;br /&gt;
  seteffect(float, float, float, float)&lt;br /&gt;
  setfocus(float, float)&lt;br /&gt;
  setfogcolors(obj)&lt;br /&gt;
  setgender(str)&lt;br /&gt;
  sethead(str)&lt;br /&gt;
  setinteriorrendermode(int)&lt;br /&gt;
  setletters(str)&lt;br /&gt;
  setmap(str, str, float, float) - sets a text map (you can see the tiles of other levels but not the npcs), parameters are text file with level names, the map image (not used anymore), default x and y for the head icons; use gmaps if possible instead of this&lt;br /&gt;
  setminimap(str, str, float, float) - parameters are a text file with level names, the image, default x and y; use gmaps if possible instead of this&lt;br /&gt;
  setmusicvolume(float, float)&lt;br /&gt;
  setplayerdir(str)&lt;br /&gt;
  setshield(str, int)&lt;br /&gt;
  setshoecolor(str)&lt;br /&gt;
  setshootparams(str)&lt;br /&gt;
  setskincolor(str)&lt;br /&gt;
  setskybandcolors(obj)&lt;br /&gt;
  setskybandsizes(obj)&lt;br /&gt;
  setsleevecolor(str)&lt;br /&gt;
  setspritesimage(str)&lt;br /&gt;
  setstatusimage(str)&lt;br /&gt;
  setsuncolors(obj)&lt;br /&gt;
  setsword(str, int)&lt;br /&gt;
  setterrainrendermode(int)&lt;br /&gt;
  showstats(int)&lt;br /&gt;
  spyfire(int, int)&lt;br /&gt;
  startrecordvideo() - returns boolean&lt;br /&gt;
  stopmidi() - same as stopmusic(), kept for compatibility&lt;br /&gt;
  stopmusic()&lt;br /&gt;
  stoprecordvideo() - returns boolean&lt;br /&gt;
  stopsound(str)&lt;br /&gt;
  strcmp(str, str) - returns integer&lt;br /&gt;
  strequals(str, str) - returns boolean&lt;br /&gt;
  switchtoopengl()&lt;br /&gt;
  synctimeofday(float, float)&lt;br /&gt;
  takeplayercarry()&lt;br /&gt;
  takeplayerhorse()&lt;br /&gt;
  testplayer(float, float) - returns integer&lt;br /&gt;
  trace(str) - same as echo()&lt;br /&gt;
  triggeraction(float, float, str, params...)&lt;br /&gt;
  triggerserver(str, str)&lt;br /&gt;
  update3dterrain(float, float, float, float)&lt;br /&gt;
  updateboard(int, int, int, int)&lt;br /&gt;
  updateterrain()&lt;br /&gt;
  updatevisibledistance()&lt;br /&gt;
  uploadfile(str) - uploads a file, you must provide the full path provided by a onDropFiles() event, also this will only work if the scripted RC has currently a file browser window open; once the file is uploaded an onFilesUploaded event will be invoked&lt;br /&gt;
  uppercase(str) - returns string&lt;br /&gt;
  vectoradd(str, str) - returns string&lt;br /&gt;
  vectorcross(str, str) - returns string&lt;br /&gt;
  vectordist(str, str) - returns float&lt;br /&gt;
  vectordot(str, str) - returns float&lt;br /&gt;
  vectorlen(str) - returns float&lt;br /&gt;
  vectornormalize(str) - returns string&lt;br /&gt;
  vectororthobasis(str) - returns string&lt;br /&gt;
  vectorscale(str, float) - returns string&lt;br /&gt;
  vectorsub(str, str) - returns string&lt;br /&gt;
  worldx(float, float) - returns float&lt;br /&gt;
  worldy(float, float) - returns float&lt;br /&gt;
  wraptext(int, str, str) - returns object&lt;br /&gt;
  wraptext2(int, float, str, str) - returns object&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Objects=&lt;br /&gt;
&amp;lt;pre&amp;gt;TGraalVar:&lt;br /&gt;
  initialized - boolean [R]&lt;br /&gt;
  ispaused - boolean - suspends the script if set to paused&lt;br /&gt;
  joinedclasses - object&lt;br /&gt;
  maxlooplimit - integer - sets the maxmimum number of loop iterations, default 10000; the allowed range for this can vary from server to server&lt;br /&gt;
  name - string&lt;br /&gt;
  scripterrors - object [R] - gives the list of script errors which were reported for this object&lt;br /&gt;
  scriptlogmissingfunctions - boolean&lt;br /&gt;
  timeout - float&lt;br /&gt;
  addarray(obj) - adds another array to this variable&lt;br /&gt;
  addarraymember(str) - returns object - adds an array member with a name and returns the new array member&lt;br /&gt;
  addnamedstring(str, str) - returns object&lt;br /&gt;
  cancelevents(str) - removes all previously scheduled events (scheduleevent) of the specified event name&lt;br /&gt;
  catchevent(str, str, str) - adds an event handler for the specified object and event, third parameter is the function which receives the event (first parameter of the event will be the object for which the event occured)&lt;br /&gt;
  clearemptyvars() - removes empty subvariables from memory&lt;br /&gt;
  clearvars() - clears all dynamic variables&lt;br /&gt;
  copyfrom(obj) - copies all variables and array values from another object, doesn't work for protected variables like players though&lt;br /&gt;
  getarraymember(str) - returns object - searches for an array member by name&lt;br /&gt;
  getdynamicvarnames() - returns object - gets the names of all dynamic (not built-in) subvariables of this object&lt;br /&gt;
  geteditvarnames() - returns object - gets the names of all dynamic variables which can be modified&lt;br /&gt;
  getfunctions() - returns object - gets the names of all functions of the object as array, also each entry has subvariables which give more information about the function (&amp;quot;parameters&amp;quot;, &amp;quot;description&amp;quot;, &amp;quot;scope&amp;quot;)&lt;br /&gt;
  getstaticvarnames() - returns object - gets the names of all static (built-in) subvariables of this object&lt;br /&gt;
  getvarnames() - returns object - gets the names of all subvariables of this object&lt;br /&gt;
  hasfunction(str) - returns boolean - checks if the object has a function of the specified name (also checks if it can be called by the current script object)&lt;br /&gt;
  ignoreevent(str, str) - lets the object ignore an event (second parameter) of the specified object name&lt;br /&gt;
  ignoreevents(str) - lets the object ignore all previously catched events of the specified object name&lt;br /&gt;
  insertarray(int, obj) - inserts an array at the specified index&lt;br /&gt;
  isinclass(str) - returns boolean - checks if the object has joined the specified class&lt;br /&gt;
  join(str) - lets the object join a class and inherit all functions and event handlers of that class&lt;br /&gt;
  leave(str) - leaves a previously joined class&lt;br /&gt;
  loadfolder(str, int) - loads the content of a folder into the variable, you must specify the folder name and pattern (e.g. &amp;quot;levels/bodies/*.png&amp;quot;) and if it should be recursive&lt;br /&gt;
  loadini(str) - loads an .ini file into the variable, you can access variables by obj.inisection.varname&lt;br /&gt;
  loadlines(str) - loads a file and adds it line by line to the variable (as array)&lt;br /&gt;
  loadstring(str) - loads the content of a file into the variable&lt;br /&gt;
  loadvars(str) - loads the variables from a file where each line has the format varname=value&lt;br /&gt;
  loadvarsfromarray(obj) - loads the variables from a string list of the format varname=value&lt;br /&gt;
  loadxml(str)&lt;br /&gt;
  loadxmlfromstring(str)&lt;br /&gt;
  objecttype() - returns string - returns the object type, which can be TGraalVar, TProjectile etc.&lt;br /&gt;
  savelines(str, int) - saves the array line by line into a file, the second parameter is the save mode (0 - overwrite, 1 - append)&lt;br /&gt;
  savestring(str, int) - saves the value as string into a file, the second parameter is the save mode (0 - overwrite, 1 - append)&lt;br /&gt;
  savevars(str, int) - saves the subvars in the format varname=value into a file, the second parameter is the save mode (0 - overwrite, 1 - append)&lt;br /&gt;
  savevarstoarray(bool) - returns object - saves the subvars in the format varname=value into an array, you must specify if it should be sorted&lt;br /&gt;
  savexml(str, int)&lt;br /&gt;
  savexmltostring() - returns string&lt;br /&gt;
  scheduleevent(float, str, params...) - returns object - invokes an event (onEventname) after the specified delay (in seconds), second parameter is the event name, followed by the parameters&lt;br /&gt;
  settimer(float) - invokes an onTimeout event after the specified time, similar to 'timeout=value'&lt;br /&gt;
  sortascending() - sorts the array in ascending order (smallest value first)&lt;br /&gt;
  sortbyvalue(str, str, bool) - sorts an array, specify the variable of the array members which is compared, also the variable type and if it should be sorted ascending; variable type can be &amp;quot;string&amp;quot;, otherwise it is sorted by floating point value&lt;br /&gt;
  sortdescending() - sorts the array in descending order (highest value first)&lt;br /&gt;
  subarray2(int, int, int, int) - returns object - extracts a two-dimensional array, specify startpos1, length1, startpos2, length2&lt;br /&gt;
  timershow() - lets an npc show the current timeout variable, deprecated&lt;br /&gt;
  trigger(str, params...) - invokes an event on the object (onEventname) with the specified event name and parameters, doesn't interrupt the current script&lt;br /&gt;
&lt;br /&gt;
  ActionMap (TGraalVar):&lt;br /&gt;
    bind(str, str, str)&lt;br /&gt;
    getbinding(str) - returns string&lt;br /&gt;
    getcommand(str, str) - returns string&lt;br /&gt;
    load() - returns boolean&lt;br /&gt;
    pop()&lt;br /&gt;
    push()&lt;br /&gt;
    save()&lt;br /&gt;
    unbind(str, str)&lt;br /&gt;
&lt;br /&gt;
  DTSAniThread (TGraalVar):&lt;br /&gt;
    aniindex - integer [R]&lt;br /&gt;
    atend - boolean [R]&lt;br /&gt;
    attack - boolean&lt;br /&gt;
    endpos - float&lt;br /&gt;
    hold - boolean&lt;br /&gt;
    position - float&lt;br /&gt;
    sequence - string&lt;br /&gt;
    startpos - float&lt;br /&gt;
    state - string&lt;br /&gt;
    timescale - float&lt;br /&gt;
    transtitiontime - float&lt;br /&gt;
    isintransition() - returns boolean&lt;br /&gt;
    play()&lt;br /&gt;
&lt;br /&gt;
  GameMovementInterpolate (TGraalVar):&lt;br /&gt;
    rigid - object [R]&lt;br /&gt;
    applyimpulse(str, str)&lt;br /&gt;
&lt;br /&gt;
    GameMovementRigid (GameMovementInterpolate):&lt;br /&gt;
      addrigidmove(str, str) - adds torque and force vector&lt;br /&gt;
&lt;br /&gt;
  GameMovementList (TGraalVar):&lt;br /&gt;
    finishmoves()&lt;br /&gt;
    move3d(str, float, int)&lt;br /&gt;
&lt;br /&gt;
  GameShape (TGraalVar):&lt;br /&gt;
    pixelshader - string&lt;br /&gt;
    vertexshader - string&lt;br /&gt;
&lt;br /&gt;
    GameShapeDIF (GameShape):&lt;br /&gt;
      activatelight(str)&lt;br /&gt;
      deactivatelight(str)&lt;br /&gt;
&lt;br /&gt;
    GameShapeDTS (GameShape):&lt;br /&gt;
      materiallist - object [R]&lt;br /&gt;
      materials - object [R]&lt;br /&gt;
      forceanimations() - starts to animate the object to make sure the animations are the wished start position&lt;br /&gt;
      getanimation(int) - returns object&lt;br /&gt;
      listnodes() - returns object&lt;br /&gt;
      pauseanimation(int)&lt;br /&gt;
      playanimation(int, str, int) - returns object - specify animation slot, animation name and flags (1 - hold, 2 - atend, 4 - attackanimation)&lt;br /&gt;
      playanimation2(int, str, int, float, float, float, float) - returns object - specify animation slot, animation name, flags, startpos, endpos, timescale, transitiontime&lt;br /&gt;
      stopanimation(int)&lt;br /&gt;
&lt;br /&gt;
    GameShapeFT (GameShape):&lt;br /&gt;
      levels - integer&lt;br /&gt;
      seed - integer&lt;br /&gt;
&lt;br /&gt;
  MovieClip (TGraalVar):&lt;br /&gt;
    _level0 - object [R]&lt;br /&gt;
    _parent - object [R]&lt;br /&gt;
    _root - object [R]&lt;br /&gt;
    _visible - boolean&lt;br /&gt;
    _x - float&lt;br /&gt;
    _xmouse - float [R]&lt;br /&gt;
    _y - float&lt;br /&gt;
    _ymouse - float [R]&lt;br /&gt;
    alpha - float&lt;br /&gt;
    blue - float&lt;br /&gt;
    frame - integer&lt;br /&gt;
    framecount - integer [R]&lt;br /&gt;
    green - float&lt;br /&gt;
    height - float [R]&lt;br /&gt;
    layernames - object [R]&lt;br /&gt;
    looping - boolean&lt;br /&gt;
    math - object [R]&lt;br /&gt;
    objectname - string&lt;br /&gt;
    objectnames - object [R]&lt;br /&gt;
    playing - boolean&lt;br /&gt;
    red - float&lt;br /&gt;
    width - float [R]&lt;br /&gt;
    attachmovie(params...) - returns object - parameters are the movie clip to copy, the name of the new clip, and the layer&lt;br /&gt;
    createemptymovieclip(str, int) - returns object - parameters are the the name of the new clip and the layer&lt;br /&gt;
    duplicatemovieclip(params...) - returns object&lt;br /&gt;
    getbytesloaded() - returns integer&lt;br /&gt;
    getbytestotal() - returns integer&lt;br /&gt;
    getcolor() - returns string&lt;br /&gt;
    getdepth() - returns integer&lt;br /&gt;
    getlayer(str) - returns object&lt;br /&gt;
    getproperty(int) - returns string&lt;br /&gt;
    gotoandplay(params...) - specify the frame name or frame number&lt;br /&gt;
    gotoandstop(params...) - specify the frame name or frame number&lt;br /&gt;
    hittest(params...) - returns boolean&lt;br /&gt;
    nextframe()&lt;br /&gt;
    play()&lt;br /&gt;
    prevframe()&lt;br /&gt;
    removelayer(str)&lt;br /&gt;
    removemovieclip()&lt;br /&gt;
    setcolor(str)&lt;br /&gt;
    setproperty(int, str)&lt;br /&gt;
    stop()&lt;br /&gt;
    swapdepths(str)&lt;br /&gt;
    unloadmovie() - same as removeMovieClip()&lt;br /&gt;
&lt;br /&gt;
  MRandomGenerator (TGraalVar):&lt;br /&gt;
    seed - integer&lt;br /&gt;
    destroy()&lt;br /&gt;
    randfloat() - returns float - a random floating point number between 0 and 1&lt;br /&gt;
    randint() - returns integer - a random integer number between 0 and 2147483647, use the modulus operator to generate a value in a smaller range (e.g. obj.randInt()%10 to get a value between 0 and 9)&lt;br /&gt;
&lt;br /&gt;
    MRandomLCG (MRandomGenerator):&lt;br /&gt;
&lt;br /&gt;
    MRandomR250 (MRandomGenerator):&lt;br /&gt;
&lt;br /&gt;
  SimObject (TGraalVar):&lt;br /&gt;
&lt;br /&gt;
    SceneObject (SimObject):&lt;br /&gt;
      eulerrotation - string&lt;br /&gt;
      forwardvector - string&lt;br /&gt;
      objectbox - string [R]&lt;br /&gt;
      position - string&lt;br /&gt;
      renderposition - string&lt;br /&gt;
      rightvector - string&lt;br /&gt;
      rotation - string&lt;br /&gt;
      scale - string&lt;br /&gt;
      scaledobjectbox - string [R]&lt;br /&gt;
      transform - string&lt;br /&gt;
      upvector - string&lt;br /&gt;
      worldbox - string [R]&lt;br /&gt;
      worldboxcenter - string [R]&lt;br /&gt;
      x - float&lt;br /&gt;
      y - float&lt;br /&gt;
      z - float&lt;br /&gt;
      getforwardvector() - returns string&lt;br /&gt;
      getobjectbox() - returns string&lt;br /&gt;
      getposition() - returns string&lt;br /&gt;
      getrightvector() - returns string&lt;br /&gt;
      getscale() - returns string&lt;br /&gt;
      gettransform() - returns string&lt;br /&gt;
      getupvector() - returns string&lt;br /&gt;
      getworldbox() - returns string&lt;br /&gt;
      getworldboxcenter() - returns string&lt;br /&gt;
      light()&lt;br /&gt;
      setforwardvector(str)&lt;br /&gt;
      setposition(str)&lt;br /&gt;
      setrightvector(str)&lt;br /&gt;
      setscale(str)&lt;br /&gt;
      settransform(str)&lt;br /&gt;
      setupvector(str)&lt;br /&gt;
&lt;br /&gt;
      fxSunLight (SceneObject):&lt;br /&gt;
        animazimuth - boolean&lt;br /&gt;
        animbrightness - boolean&lt;br /&gt;
        animcolour - boolean&lt;br /&gt;
        animelevation - boolean&lt;br /&gt;
        animrotation - boolean&lt;br /&gt;
        animsize - boolean&lt;br /&gt;
        azimuthkeys - string&lt;br /&gt;
        azimuthtime - float&lt;br /&gt;
        blendmode - integer&lt;br /&gt;
        bluekeys - string&lt;br /&gt;
        brightness - float&lt;br /&gt;
        brightnesskeys - string&lt;br /&gt;
        brightnesstime - float&lt;br /&gt;
        colour - string&lt;br /&gt;
        colourtime - float&lt;br /&gt;
        elevationkeys - string&lt;br /&gt;
        elevationtime - float&lt;br /&gt;
        enable - boolean&lt;br /&gt;
        fadetime - float&lt;br /&gt;
        flaresize - float&lt;br /&gt;
        flaretp - boolean&lt;br /&gt;
        greenkeys - string&lt;br /&gt;
        lerpazimuth - boolean&lt;br /&gt;
        lerpbrightness - boolean&lt;br /&gt;
        lerpcolour - boolean&lt;br /&gt;
        lerpelevation - boolean&lt;br /&gt;
        lerprotation - boolean&lt;br /&gt;
        lerpsize - boolean&lt;br /&gt;
        linkflaresize - boolean&lt;br /&gt;
        localflarebitmap - string&lt;br /&gt;
        maxazimuth - float&lt;br /&gt;
        maxbrightness - float&lt;br /&gt;
        maxcolour - string&lt;br /&gt;
        maxelevation - float&lt;br /&gt;
        maxrotation - float&lt;br /&gt;
        maxsize - float&lt;br /&gt;
        minazimuth - float&lt;br /&gt;
        minbrightness - float&lt;br /&gt;
        mincolour - string&lt;br /&gt;
        minelevation - float&lt;br /&gt;
        minrotation - float&lt;br /&gt;
        minsize - float&lt;br /&gt;
        redkeys - string&lt;br /&gt;
        remoteflarebitmap - string&lt;br /&gt;
        rotationkeys - string&lt;br /&gt;
        rotationtime - float&lt;br /&gt;
        singlecolourkeys - boolean&lt;br /&gt;
        sizekeys - string&lt;br /&gt;
        sizetime - float&lt;br /&gt;
        sunazimuth - float&lt;br /&gt;
        sunelevation - float&lt;br /&gt;
        reset()&lt;br /&gt;
&lt;br /&gt;
      GameObject (SceneObject):&lt;br /&gt;
        alpha - float&lt;br /&gt;
        attachedtoobject - object&lt;br /&gt;
        attrobjects - object [R]&lt;br /&gt;
        chat - string&lt;br /&gt;
        collision - boolean&lt;br /&gt;
        iseditorobject - boolean&lt;br /&gt;
        liquidheight - float [R]&lt;br /&gt;
        liquidtype - string [R]&lt;br /&gt;
        movetype - string&lt;br /&gt;
        nick - string - same as nickname&lt;br /&gt;
        nickcolor - string&lt;br /&gt;
        nickname - string&lt;br /&gt;
        position - string&lt;br /&gt;
        scaledshapebox - string [R]&lt;br /&gt;
        shadow - boolean&lt;br /&gt;
        shape - string&lt;br /&gt;
        shapebox - string [R]&lt;br /&gt;
        showterrain - boolean&lt;br /&gt;
        skin - string&lt;br /&gt;
        solid - boolean&lt;br /&gt;
        transform - string&lt;br /&gt;
        velocity - string&lt;br /&gt;
        watercoverage - float [R]&lt;br /&gt;
        checkcollision(str, str) - returns object&lt;br /&gt;
        checkcollisionbybox(str, str, str) - returns object&lt;br /&gt;
        clippolygons(str) - returns object&lt;br /&gt;
        findimg(int) - returns object&lt;br /&gt;
        getcontrollingclient() - returns object&lt;br /&gt;
        getcontrollingobject() - returns object&lt;br /&gt;
        getdropz(str) - returns float&lt;br /&gt;
        getinteriorobject() - returns object&lt;br /&gt;
        getmountedobject(int) - returns object&lt;br /&gt;
        getmountedobjectcount() - returns integer&lt;br /&gt;
        getmountedobjectnode(int) - returns integer&lt;br /&gt;
        getmountnodeobject(int) - returns object&lt;br /&gt;
        getmountposition(int) - returns string&lt;br /&gt;
        getmounttransform(int) - returns string&lt;br /&gt;
        getnodeposition(str) - returns string&lt;br /&gt;
        getnodetransform(str) - returns string&lt;br /&gt;
        getobjectmount() - returns object&lt;br /&gt;
        hideimg(int)&lt;br /&gt;
        hideimgs(int, int)&lt;br /&gt;
        isdrawn() - returns boolean&lt;br /&gt;
        isininterior() - returns boolean&lt;br /&gt;
        ismounted() - returns boolean&lt;br /&gt;
        mountobject(obj, int) - returns boolean&lt;br /&gt;
        setdirection(str)&lt;br /&gt;
        unmount()&lt;br /&gt;
        unmountobject(obj) - returns boolean&lt;br /&gt;
&lt;br /&gt;
        Camera (GameObject):&lt;br /&gt;
          cameramode - string&lt;br /&gt;
          eulerrotation - string&lt;br /&gt;
          followattachedobject - object&lt;br /&gt;
          lookatposition - string&lt;br /&gt;
          lookvector - string&lt;br /&gt;
          updateposition()&lt;br /&gt;
&lt;br /&gt;
        DynamicShapeReplicator (GameObject):&lt;br /&gt;
          aligntoterrain - boolean&lt;br /&gt;
          allowedterrainslope - integer&lt;br /&gt;
          allowoninteriors - boolean&lt;br /&gt;
          allowonstatics - boolean&lt;br /&gt;
          allowonterrain - boolean&lt;br /&gt;
          allowonwater - boolean&lt;br /&gt;
          allowwatersurface - boolean&lt;br /&gt;
          boxmax - string&lt;br /&gt;
          boxmin - string&lt;br /&gt;
          hidereplications - boolean&lt;br /&gt;
          maxgridobjects - integer&lt;br /&gt;
          mingridobjects - integer&lt;br /&gt;
          offsetz - float&lt;br /&gt;
          radius - integer&lt;br /&gt;
          seed - integer&lt;br /&gt;
          shapefiles - string&lt;br /&gt;
          shaperotatemax - string&lt;br /&gt;
          shaperotatemin - string&lt;br /&gt;
          shapescalemax - string&lt;br /&gt;
          shapescalemin - string&lt;br /&gt;
          surfaceexclusionmode - boolean&lt;br /&gt;
          surfacetype - integer&lt;br /&gt;
          terrainalignment - string&lt;br /&gt;
&lt;br /&gt;
          DynamicGrass (DynamicShapeReplicator):&lt;br /&gt;
&lt;br /&gt;
          DynamicGrassReplicator (DynamicShapeReplicator):&lt;br /&gt;
&lt;br /&gt;
      Sky (SceneObject):&lt;br /&gt;
        cloudheight1 - float&lt;br /&gt;
        cloudheight2 - float&lt;br /&gt;
        cloudheight3 - float&lt;br /&gt;
        cloudspeed1 - float&lt;br /&gt;
        cloudspeed2 - float&lt;br /&gt;
        cloudspeed3 - float&lt;br /&gt;
        fogcolor - string&lt;br /&gt;
        fogstorm1 - boolean&lt;br /&gt;
        fogstorm2 - boolean&lt;br /&gt;
        fogstorm3 - boolean&lt;br /&gt;
        fogvolume1 - string&lt;br /&gt;
        fogvolume2 - string&lt;br /&gt;
        fogvolume3 - string&lt;br /&gt;
        fogvolumecolor1 - string&lt;br /&gt;
        fogvolumecolor2 - string&lt;br /&gt;
        fogvolumecolor3 - string&lt;br /&gt;
        materiallist - string&lt;br /&gt;
        norenderbans - boolean&lt;br /&gt;
        renderbottomtexture - boolean&lt;br /&gt;
        skyfadetime - float&lt;br /&gt;
        skysolidcolor - string&lt;br /&gt;
        useskytextures - boolean&lt;br /&gt;
        windeffectprecipitation - boolean&lt;br /&gt;
        windvelocity - string&lt;br /&gt;
        getwindowvelocity() - returns string&lt;br /&gt;
        realfog(bool, float, float, float) - specify if it should show, and max, min and speed values&lt;br /&gt;
        stormclouds(bool, float) - specify if it should show, and the duration&lt;br /&gt;
        stormcloudsshow(bool)&lt;br /&gt;
        stormfog(float, float) - percent and duration of the fog&lt;br /&gt;
        stormfogshow(bool)&lt;br /&gt;
&lt;br /&gt;
      TerrainBlock (SceneObject):&lt;br /&gt;
        repeatterrain - boolean&lt;br /&gt;
        squaresize - integer&lt;br /&gt;
        terrainfile - string&lt;br /&gt;
&lt;br /&gt;
      WaterBlock (SceneObject):&lt;br /&gt;
        density - float&lt;br /&gt;
        depthgradient - float&lt;br /&gt;
        distortgridscale - float&lt;br /&gt;
        distortmag - float&lt;br /&gt;
        distorttime - float&lt;br /&gt;
        envmapintensity - float&lt;br /&gt;
        envmapovertexture - string&lt;br /&gt;
        envmapundertexture - string&lt;br /&gt;
        flowangle - float&lt;br /&gt;
        flowrate - float&lt;br /&gt;
        ignoreterrain - boolean&lt;br /&gt;
        liquidtype - string&lt;br /&gt;
        maxalpha - float&lt;br /&gt;
        minalpha - float&lt;br /&gt;
        removewetedges - boolean&lt;br /&gt;
        shoredepth - float&lt;br /&gt;
        shoretexture - string&lt;br /&gt;
        specularcolor - string&lt;br /&gt;
        specularmasktex - string&lt;br /&gt;
        specularpower - float&lt;br /&gt;
        submergetexture0 - string&lt;br /&gt;
        submergetexture1 - string&lt;br /&gt;
        surfaceopacity - float&lt;br /&gt;
        surfaceparallax - float&lt;br /&gt;
        surfacetexture - string&lt;br /&gt;
        tessshore - float&lt;br /&gt;
        tesssurface - float&lt;br /&gt;
        usedepthmask - boolean&lt;br /&gt;
        viscosity - float&lt;br /&gt;
        wavemagnitude - float&lt;br /&gt;
&lt;br /&gt;
    SimGroup (SimObject):&lt;br /&gt;
      addcontrol(obj)&lt;br /&gt;
&lt;br /&gt;
      GameConnection (SimGroup):&lt;br /&gt;
        account - string [R]&lt;br /&gt;
        camera - object [R]&lt;br /&gt;
        communityname - string [R]&lt;br /&gt;
        isobserver - boolean [R]&lt;br /&gt;
        nick - string [R]&lt;br /&gt;
        objecttype() - returns string&lt;br /&gt;
        showprofile()&lt;br /&gt;
&lt;br /&gt;
    Sun (SimObject):&lt;br /&gt;
      ambient - string&lt;br /&gt;
      color - string&lt;br /&gt;
      direction - string&lt;br /&gt;
&lt;br /&gt;
  TDrawableObject (TGraalVar):&lt;br /&gt;
    layer - integer [R]&lt;br /&gt;
&lt;br /&gt;
    TBaddy (TDrawableObject):&lt;br /&gt;
      dir - integer&lt;br /&gt;
      headdir - integer&lt;br /&gt;
      mode - integer&lt;br /&gt;
      power - integer&lt;br /&gt;
      type - integer&lt;br /&gt;
      x - float&lt;br /&gt;
      y - float&lt;br /&gt;
&lt;br /&gt;
    TLevelObject (TDrawableObject):&lt;br /&gt;
      level - object [R]&lt;br /&gt;
      x - float&lt;br /&gt;
      y - float&lt;br /&gt;
      z - float&lt;br /&gt;
&lt;br /&gt;
      TExplosion (TLevelObject):&lt;br /&gt;
        dir - integer [R]&lt;br /&gt;
        power - integer [R]&lt;br /&gt;
        time - float [R]&lt;br /&gt;
&lt;br /&gt;
      TGaniObject (TLevelObject):&lt;br /&gt;
        alpha - float&lt;br /&gt;
        ani - object [R]&lt;br /&gt;
        aniparams - string [R]&lt;br /&gt;
        anistep - integer [R]&lt;br /&gt;
        attachedtoobject - object [R]&lt;br /&gt;
        attachid - integer [R]&lt;br /&gt;
        attachtype - integer [R]&lt;br /&gt;
        attr - object [R]&lt;br /&gt;
        blue - float&lt;br /&gt;
        body - string&lt;br /&gt;
        bodyimg - string&lt;br /&gt;
        colors - object [R]&lt;br /&gt;
        dir - integer&lt;br /&gt;
        gmap - object [R]&lt;br /&gt;
        green - float&lt;br /&gt;
        head - string&lt;br /&gt;
        headimg - string&lt;br /&gt;
        mode - integer - the object drawing mode (0 - add, 1 - transparent, 2 - subtract, 3 - daynight)&lt;br /&gt;
        red - float&lt;br /&gt;
        rotation - float&lt;br /&gt;
        shield - string&lt;br /&gt;
        sprite - integer&lt;br /&gt;
        stretchx - float&lt;br /&gt;
        stretchy - float&lt;br /&gt;
        sword - string&lt;br /&gt;
        zoom - float&lt;br /&gt;
        getimageforsprite(obj) - returns string&lt;br /&gt;
        getsprite(str) - returns object&lt;br /&gt;
        getspriteforspritepos(obj) - returns object&lt;br /&gt;
        setcoloreffect(float, float, float, float)&lt;br /&gt;
        seteffectmode(int)&lt;br /&gt;
&lt;br /&gt;
        TProjectile (TGaniObject):&lt;br /&gt;
          angle - float [R]&lt;br /&gt;
          fromplayer - object [R]&lt;br /&gt;
          horiz - boolean [R]&lt;br /&gt;
          params - object [R]&lt;br /&gt;
          speed - float [R]&lt;br /&gt;
          x - float [R]&lt;br /&gt;
          y - float [R]&lt;br /&gt;
          z - float [R]&lt;br /&gt;
          zspeed - float [R]&lt;br /&gt;
&lt;br /&gt;
        TServerHorse (TGaniObject):&lt;br /&gt;
          bombpower - integer&lt;br /&gt;
          bombs - integer&lt;br /&gt;
          bushes - integer&lt;br /&gt;
          dir - integer&lt;br /&gt;
          type - integer&lt;br /&gt;
&lt;br /&gt;
        TServerPlayer (TGaniObject):&lt;br /&gt;
          account - string [R]&lt;br /&gt;
          ap - integer&lt;br /&gt;
          attached - boolean [R]&lt;br /&gt;
          attachedtoobject - object&lt;br /&gt;
          bombs - integer&lt;br /&gt;
          chat - string&lt;br /&gt;
          communityname - string [R]&lt;br /&gt;
          darts - integer&lt;br /&gt;
          fullhearts - integer [R]&lt;br /&gt;
          glovepower - integer&lt;br /&gt;
          gralats - integer&lt;br /&gt;
          guild - string [R]&lt;br /&gt;
          headimg - string&lt;br /&gt;
          headset - integer&lt;br /&gt;
          hearts - float [R]&lt;br /&gt;
          horseimg - string [R]&lt;br /&gt;
          hp - float [R]&lt;br /&gt;
          id - integer [R]&lt;br /&gt;
          isadmin - boolean [R]&lt;br /&gt;
          isbuddy - boolean&lt;br /&gt;
          ischannel - boolean [R]&lt;br /&gt;
          ischannelopen - boolean [R]&lt;br /&gt;
          ischanneluser - boolean [R]&lt;br /&gt;
          isexternal - boolean [R]&lt;br /&gt;
          isfemale - boolean [R]&lt;br /&gt;
          isignored - boolean&lt;br /&gt;
          isignoring - boolean [R]&lt;br /&gt;
          isloggedin - boolean [R]&lt;br /&gt;
          ismale - boolean [R]&lt;br /&gt;
          ismuted - boolean [R]&lt;br /&gt;
          ismuting - boolean [R]&lt;br /&gt;
          language - string [R]&lt;br /&gt;
          languagedomain - string [R]&lt;br /&gt;
          mapicon - object [R] - of type TDrawingPanel, this is the icon that appears on the mini-map, usually updated by the playerlist script&lt;br /&gt;
          maxhp - integer [R]&lt;br /&gt;
          messagebubble - integer [R]&lt;br /&gt;
          mp - integer&lt;br /&gt;
          nick - string&lt;br /&gt;
          platform - string [R]&lt;br /&gt;
          playersindex - integer [R]&lt;br /&gt;
          rating - float [R]&lt;br /&gt;
          ratingd - float [R]&lt;br /&gt;
          rupees - integer - better use 'gralats'&lt;br /&gt;
          shieldimg - string - only there for compatibility with GS1, use just 'shield' instead&lt;br /&gt;
          shieldpower - integer [R]&lt;br /&gt;
          swordimg - string - only there for compatibility with GS1, use just 'sword' instead&lt;br /&gt;
          swordpower - integer [R]&lt;br /&gt;
          x - float&lt;br /&gt;
          y - float&lt;br /&gt;
          isguildpm() - returns boolean&lt;br /&gt;
          ismasspm() - returns boolean&lt;br /&gt;
          openexternalhistory() - returns boolean&lt;br /&gt;
          openexternalpm(bool) - returns boolean - as parameter specify 'true' if it should display the pm sent by the player, otherwise always open a blank PM window&lt;br /&gt;
          pmswaiting() - returns boolean&lt;br /&gt;
          showprofile()&lt;br /&gt;
&lt;br /&gt;
          TPlayer (TServerPlayer):&lt;br /&gt;
            ap - integer&lt;br /&gt;
            chat - string&lt;br /&gt;
            freezetime - float&lt;br /&gt;
            hearts - float&lt;br /&gt;
            horseimg - string&lt;br /&gt;
            hp - float&lt;br /&gt;
            hurt - boolean [R]&lt;br /&gt;
            hurtdx - float [R]&lt;br /&gt;
            hurtdy - float [R]&lt;br /&gt;
            hurted - boolean [R]&lt;br /&gt;
            hurtpower - float [R]&lt;br /&gt;
            isfemale - boolean [R]&lt;br /&gt;
            ismale - boolean [R]&lt;br /&gt;
            isobserver - boolean [R]&lt;br /&gt;
            letters - string&lt;br /&gt;
            map - boolean [R]&lt;br /&gt;
            nick - string [R]&lt;br /&gt;
            onhorse - boolean [R]&lt;br /&gt;
            online - boolean [R]&lt;br /&gt;
            paused - boolean [R]&lt;br /&gt;
            reading - boolean [R]&lt;br /&gt;
            shieldimg - string - same as 'shield', except that changing this also updates the shieldpower&lt;br /&gt;
            sprite - integer&lt;br /&gt;
            swimming - boolean [R]&lt;br /&gt;
            swordimg - string - same as 'sword', except that changing this also updates the swordpower&lt;br /&gt;
            weapon - object [R]&lt;br /&gt;
            weapons - object [R]&lt;br /&gt;
&lt;br /&gt;
          TServerNPC (TServerPlayer):&lt;br /&gt;
            actionplayer - integer [R]&lt;br /&gt;
            hearts - float&lt;br /&gt;
            height - float [R]&lt;br /&gt;
            horseimg - string&lt;br /&gt;
            hp - float&lt;br /&gt;
            hurtdx - float&lt;br /&gt;
            hurtdy - float&lt;br /&gt;
            image - string&lt;br /&gt;
            isblocking - boolean&lt;br /&gt;
            isblockingprojectiles - boolean&lt;br /&gt;
            layer - integer&lt;br /&gt;
            npcsindex - integer [R]&lt;br /&gt;
            peltwithblackstone - boolean [R]&lt;br /&gt;
            peltwithbush - boolean [R]&lt;br /&gt;
            peltwithnpc - boolean [R]&lt;br /&gt;
            peltwithsign - boolean [R]&lt;br /&gt;
            peltwithstone - boolean [R]&lt;br /&gt;
            peltwithvase - boolean [R]&lt;br /&gt;
            save - object [R]&lt;br /&gt;
            shieldpower - integer&lt;br /&gt;
            sprite - integer&lt;br /&gt;
            swordpower - integer&lt;br /&gt;
            visible - boolean&lt;br /&gt;
            width - float [R]&lt;br /&gt;
            x - float&lt;br /&gt;
            y - float&lt;br /&gt;
            blockagain()&lt;br /&gt;
            blockagainlocal()&lt;br /&gt;
            canbecarried()&lt;br /&gt;
            canbepulled()&lt;br /&gt;
            canbepushed()&lt;br /&gt;
            cannotbecarried()&lt;br /&gt;
            cannotbepulled()&lt;br /&gt;
            cannotbepushed()&lt;br /&gt;
            carryobject(str)&lt;br /&gt;
            changeimgcolors(int, float, float, float, float)&lt;br /&gt;
            changeimgmode(int, int)&lt;br /&gt;
            changeimgpart(int, int, int, int, int)&lt;br /&gt;
            changeimgvis(int, int)&lt;br /&gt;
            changeimgzoom(int, float)&lt;br /&gt;
            destroy()&lt;br /&gt;
            dontblock()&lt;br /&gt;
            dontblocklocal()&lt;br /&gt;
            drawaslight()&lt;br /&gt;
            drawoverplayer()&lt;br /&gt;
            drawunderplayer()&lt;br /&gt;
            findimg(int) - returns object&lt;br /&gt;
            hide()&lt;br /&gt;
            hideimg(int)&lt;br /&gt;
            hideimgs(int, int)&lt;br /&gt;
            hidelocal()&lt;br /&gt;
            hurt(int)&lt;br /&gt;
            lay(str)&lt;br /&gt;
            message(str)&lt;br /&gt;
            move(float, float, float, int)&lt;br /&gt;
            setbow(str)&lt;br /&gt;
            setcharani(str, str)&lt;br /&gt;
            setchargender(str)&lt;br /&gt;
            setimg(str)&lt;br /&gt;
            setimgpart(str, int, int, int, int)&lt;br /&gt;
            setshape(int, int, int)&lt;br /&gt;
            setshape2(int, int, obj)&lt;br /&gt;
            setzoomeffect(float)&lt;br /&gt;
            shootarrow(int)&lt;br /&gt;
            shootball()&lt;br /&gt;
            shootfireball(int)&lt;br /&gt;
            shootfireblast(int)&lt;br /&gt;
            shootnuke(int)&lt;br /&gt;
            show()&lt;br /&gt;
            showani(int, float, float, int, str) - returns object&lt;br /&gt;
            showani2(int, float, float, float, int, str) - returns object&lt;br /&gt;
            showcharacter()&lt;br /&gt;
            showimg(int, str, float, float) - returns object&lt;br /&gt;
            showimg2(int, str, float, float, float) - returns object&lt;br /&gt;
            showlocal()&lt;br /&gt;
            showpoly(int, obj) - returns object&lt;br /&gt;
            showpoly2(int, obj) - returns object&lt;br /&gt;
            showtext(int, float, float, str, str, str) - returns object&lt;br /&gt;
            showtext2(int, float, float, float, str, str, str) - returns object&lt;br /&gt;
            take(str)&lt;br /&gt;
            take2(int)&lt;br /&gt;
            takehorse(int)&lt;br /&gt;
            throwcarry()&lt;br /&gt;
            timereverywhere()&lt;br /&gt;
&lt;br /&gt;
            TServerWeapon (TServerNPC):&lt;br /&gt;
              isweapon - boolean [R]&lt;br /&gt;
&lt;br /&gt;
      TServerBomb (TLevelObject):&lt;br /&gt;
        power - integer&lt;br /&gt;
        time - float&lt;br /&gt;
&lt;br /&gt;
      TServerCarry (TLevelObject):&lt;br /&gt;
&lt;br /&gt;
      TServerChest (TLevelObject):&lt;br /&gt;
        isopen - boolean [R]&lt;br /&gt;
        item - string [R]&lt;br /&gt;
&lt;br /&gt;
      TServerExtra (TLevelObject):&lt;br /&gt;
        time - float [R]&lt;br /&gt;
        type - integer [R]&lt;br /&gt;
&lt;br /&gt;
      TServerFlying (TLevelObject):&lt;br /&gt;
        dir - integer [R]&lt;br /&gt;
        dx - float&lt;br /&gt;
        dy - float&lt;br /&gt;
        from - integer [R]&lt;br /&gt;
        type - integer [R]&lt;br /&gt;
&lt;br /&gt;
      TServerLeap (TLevelObject):&lt;br /&gt;
&lt;br /&gt;
      TServerSign (TLevelObject):&lt;br /&gt;
        text - string&lt;br /&gt;
&lt;br /&gt;
      TShowImg (TLevelObject):&lt;br /&gt;
        alpha - float&lt;br /&gt;
        ani - string&lt;br /&gt;
        attachnode - string&lt;br /&gt;
        attachoffset - string&lt;br /&gt;
        attachtoowner - boolean&lt;br /&gt;
        blue - float&lt;br /&gt;
        code - string - the old representation as 'font@style@text'&lt;br /&gt;
        dimension - integer&lt;br /&gt;
        dir - integer&lt;br /&gt;
        emitter - object [R]&lt;br /&gt;
        eulerrotation - string&lt;br /&gt;
        flashfile - string&lt;br /&gt;
        font - string&lt;br /&gt;
        green - float&lt;br /&gt;
        image - string&lt;br /&gt;
        imageindex - integer [R]&lt;br /&gt;
        is3dlight - boolean&lt;br /&gt;
        layer - integer&lt;br /&gt;
        mode - integer - the image drawing mode (0 - add, 1 - transparent, 2 - subtract, 3 - daynight)&lt;br /&gt;
        playerlook - boolean - if the animation should take it's head, body, sword, shield and attr[] from the owner (playerlook), set this to false if you want to set the images yourself by changing showimg.actor.head etc.&lt;br /&gt;
        polygon - object&lt;br /&gt;
        position - string&lt;br /&gt;
        red - float&lt;br /&gt;
        rotation - float&lt;br /&gt;
        shape - string&lt;br /&gt;
        shapeobject - object [R]&lt;br /&gt;
        spin - float&lt;br /&gt;
        stretchx - float&lt;br /&gt;
        stretchy - float&lt;br /&gt;
        style - string&lt;br /&gt;
        text - string&lt;br /&gt;
        x - float&lt;br /&gt;
        y - float&lt;br /&gt;
        z - float&lt;br /&gt;
        zoom - float&lt;br /&gt;
&lt;br /&gt;
  TDrawingPanel (TGraalVar):&lt;br /&gt;
    height - integer [R]&lt;br /&gt;
    isclear - boolean [R]&lt;br /&gt;
    parth - integer [R]&lt;br /&gt;
    partw - integer [R]&lt;br /&gt;
    partx - integer [R]&lt;br /&gt;
    party - integer [R]&lt;br /&gt;
    width - integer [R]&lt;br /&gt;
    clearall()&lt;br /&gt;
    clearrectangle(int, int, int, int) - x, y, width and height&lt;br /&gt;
    drawimage(int, int, str) - x, y, source image&lt;br /&gt;
    drawimagerectangle(int, int, str, int, int, int, int) - destination x and y, source image, source x,y,width and height&lt;br /&gt;
    drawimagestretched(int, int, int, int, str, int, int, int, int) - destination x,y,width and height, source image, source x,y,width and height&lt;br /&gt;
    saveimage(str)&lt;br /&gt;
&lt;br /&gt;
  Terraformer (TGraalVar):&lt;br /&gt;
    loadgrayscale(int, str) - returns boolean&lt;br /&gt;
    loadgreyscale(int, str) - returns boolean&lt;br /&gt;
    savegreyscale(int, str) - returns boolean&lt;br /&gt;
    setterrain(int) - returns boolean&lt;br /&gt;
&lt;br /&gt;
  TFrameDetail (TGraalVar):&lt;br /&gt;
    bordercolor - string&lt;br /&gt;
    borderenable - string&lt;br /&gt;
    bordermovable - string&lt;br /&gt;
    borderwidth - integer&lt;br /&gt;
    minextent - string&lt;br /&gt;
&lt;br /&gt;
  TGameObjectAttr (TGraalVar):&lt;br /&gt;
&lt;br /&gt;
  TGaniParam (TGraalVar):&lt;br /&gt;
&lt;br /&gt;
  TGraalAni (TGraalVar):&lt;br /&gt;
    continuous - boolean&lt;br /&gt;
    ganitype - string [R]&lt;br /&gt;
    loop - boolean&lt;br /&gt;
    movie - boolean&lt;br /&gt;
    setbackto - string&lt;br /&gt;
    singledirection - boolean&lt;br /&gt;
    addsprite(int) - returns object&lt;br /&gt;
    addstep() - returns object&lt;br /&gt;
    deletesprite(int)&lt;br /&gt;
    deletestep(int)&lt;br /&gt;
    getsprite(int) - returns object&lt;br /&gt;
    insertstep(int) - returns object&lt;br /&gt;
&lt;br /&gt;
  TGraalAniPart (TGraalVar):&lt;br /&gt;
    attr - integer&lt;br /&gt;
    dx - integer&lt;br /&gt;
    dy - integer&lt;br /&gt;
    param - integer&lt;br /&gt;
    sprite - object&lt;br /&gt;
&lt;br /&gt;
  TGraalAniSound (TGraalVar):&lt;br /&gt;
    delay - float&lt;br /&gt;
    dx - float&lt;br /&gt;
    dy - float&lt;br /&gt;
    sound - string&lt;br /&gt;
&lt;br /&gt;
  TGraalAniSprite (TGraalVar):&lt;br /&gt;
    alpha - float&lt;br /&gt;
    blue - float&lt;br /&gt;
    description - string&lt;br /&gt;
    green - float&lt;br /&gt;
    height - integer&lt;br /&gt;
    image - string&lt;br /&gt;
    imagetype - string [R]&lt;br /&gt;
    mode - integer&lt;br /&gt;
    red - float&lt;br /&gt;
    rotation - float&lt;br /&gt;
    spriteindex - integer&lt;br /&gt;
    stretchx - float&lt;br /&gt;
    stretchy - float&lt;br /&gt;
    width - integer&lt;br /&gt;
    x - integer&lt;br /&gt;
    y - integer&lt;br /&gt;
    zoom - float&lt;br /&gt;
    addattachment() - returns object&lt;br /&gt;
    deleteattachment(int)&lt;br /&gt;
    insertattachment(int) - returns object&lt;br /&gt;
&lt;br /&gt;
  TGraalAniStep (TGraalVar):&lt;br /&gt;
    delay - float&lt;br /&gt;
    addpos(int) - returns object&lt;br /&gt;
    deletepos(int, int)&lt;br /&gt;
    insertpos(int, int) - returns object&lt;br /&gt;
&lt;br /&gt;
  TGraalSpriteAttachment (TGraalVar):&lt;br /&gt;
    behind - boolean&lt;br /&gt;
    dx - integer&lt;br /&gt;
    dy - integer&lt;br /&gt;
    sprite - object&lt;br /&gt;
&lt;br /&gt;
  THTTPRequest (TGraalVar):&lt;br /&gt;
    address - string [R]&lt;br /&gt;
    contentlanguage - string [R]&lt;br /&gt;
    contentlength - integer [R]&lt;br /&gt;
    contenttype - string [R]&lt;br /&gt;
    downloadcomplete - boolean [R]&lt;br /&gt;
    file - string [R]&lt;br /&gt;
    fulldata - string [R]&lt;br /&gt;
    lastmodified - string [R]&lt;br /&gt;
    port - integer [R]&lt;br /&gt;
    returncode - integer [R]&lt;br /&gt;
    returnmessage - string [R]&lt;br /&gt;
    server - string [R]&lt;br /&gt;
    url - string [R]&lt;br /&gt;
&lt;br /&gt;
  TMovementRigid (TGraalVar):&lt;br /&gt;
    mass - float&lt;br /&gt;
&lt;br /&gt;
  TParticle (TGraalVar):&lt;br /&gt;
    angle - float&lt;br /&gt;
    lifetime - float&lt;br /&gt;
    movementvector - string&lt;br /&gt;
    sound - string&lt;br /&gt;
    speed - float&lt;br /&gt;
    zangle - float&lt;br /&gt;
&lt;br /&gt;
  TParticleEmitter (TGraalVar):&lt;br /&gt;
    attachposition - boolean&lt;br /&gt;
    autorotation - boolean&lt;br /&gt;
    checkbelowterrain - boolean&lt;br /&gt;
    clippingbox - string&lt;br /&gt;
    cliptoscreen - boolean&lt;br /&gt;
    continueafterdestroy - boolean&lt;br /&gt;
    currentparticlecount - integer [R]&lt;br /&gt;
    delaymax - float&lt;br /&gt;
    delaymin - float&lt;br /&gt;
    dropemitter - object [R]&lt;br /&gt;
    dropwateremitter - object [R]&lt;br /&gt;
    emissionoffset - string&lt;br /&gt;
    emitatterrainheight - boolean&lt;br /&gt;
    emitautomatically - boolean&lt;br /&gt;
    emittedparticles - integer [R]&lt;br /&gt;
    firstinfront - boolean&lt;br /&gt;
    isfrozen - boolean&lt;br /&gt;
    maxparticles - integer&lt;br /&gt;
    movementfactor - float&lt;br /&gt;
    nrofparticles - integer&lt;br /&gt;
    particle - object [R]&lt;br /&gt;
    particletypes - integer&lt;br /&gt;
    wraptoclippingbox - boolean&lt;br /&gt;
    addemitmodifier(str, float, float, str, str, float, float) - returns object&lt;br /&gt;
    addglobalmodifier(str, float, float, str, str, float, float) - returns object&lt;br /&gt;
    addlocalmodifier(str, float, float, str, str, float, float) - returns object&lt;br /&gt;
    advancetime(float)&lt;br /&gt;
    emit()&lt;br /&gt;
    emitat(str)&lt;br /&gt;
    removemodifiers()&lt;br /&gt;
    removeparticles()&lt;br /&gt;
&lt;br /&gt;
  TParticleModifier (TGraalVar):&lt;br /&gt;
    addmod(str, str, float, float)&lt;br /&gt;
&lt;br /&gt;
  TScriptFunction (TGraalVar):&lt;br /&gt;
&lt;br /&gt;
  TServerLevel (TGraalVar):&lt;br /&gt;
    compsdead - boolean [R]&lt;br /&gt;
    height - integer [R]&lt;br /&gt;
    isnopkzone - boolean [R]&lt;br /&gt;
    issparringzone - boolean [R]&lt;br /&gt;
    nopkzone - boolean [R] - same like 'isnopkzone'&lt;br /&gt;
    tilelayercount - integer&lt;br /&gt;
    width - integer [R]&lt;br /&gt;
    findareanpcs(float, float, float, float) - returns object - returns an array of all npcs at the specified rectangle (x,y,width,height)&lt;br /&gt;
    getmappartfile(float, float) - returns string&lt;br /&gt;
    hitcompu(int, int, float, float)&lt;br /&gt;
    putbomb(int, float, float)&lt;br /&gt;
    putcomp(str, float, float)&lt;br /&gt;
    putexplosion(int, float, float)&lt;br /&gt;
    putexplosion2(int, int, float, float)&lt;br /&gt;
    puthorse(str, float, float)&lt;br /&gt;
    putnewcomp(str, float, float, str, int)&lt;br /&gt;
    reflectarrow(int)&lt;br /&gt;
    removearrow(int)&lt;br /&gt;
    removebomb(int)&lt;br /&gt;
    removecompus()&lt;br /&gt;
    removeexplo(int)&lt;br /&gt;
    removehorse(int)&lt;br /&gt;
    removeitem(int)&lt;br /&gt;
    setz(int, int, int, int, float, float, float, float)&lt;br /&gt;
    shoot(float, float, float, float, float, float, str, str) - shoots a projectile with x,y,z,angle,zangle,strength,ani,aniparams&lt;br /&gt;
    testbomb(float, float) - returns integer&lt;br /&gt;
    testexplo(float, float) - returns integer&lt;br /&gt;
    testhorse(float, float) - returns integer&lt;br /&gt;
    testitem(float, float) - returns integer&lt;br /&gt;
    testnpc(float, float) - returns integer&lt;br /&gt;
    testsign(float, float) - returns integer&lt;br /&gt;
    tiletype(float, float) - returns integer&lt;br /&gt;
&lt;br /&gt;
  TServerLevelLink (TGraalVar):&lt;br /&gt;
    destlevel - string [R]&lt;br /&gt;
    destx - float [R]&lt;br /&gt;
    desty - float [R]&lt;br /&gt;
    height - float [R]&lt;br /&gt;
    width - float [R]&lt;br /&gt;
    x - float [R]&lt;br /&gt;
    y - float [R]&lt;br /&gt;
&lt;br /&gt;
  TShapeMaterial (TGraalVar):&lt;br /&gt;
    specularpower - integer&lt;br /&gt;
&lt;br /&gt;
  TShowImg_Values (TGraalVar):&lt;br /&gt;
    alpha - float&lt;br /&gt;
    blue - float&lt;br /&gt;
    green - float&lt;br /&gt;
    mode - integer - the image drawing mode (0 - add, 1 - transparent, 2 - subtract, 3 - daynight)&lt;br /&gt;
    red - float&lt;br /&gt;
    rotation - float&lt;br /&gt;
    spin - float&lt;br /&gt;
    stretchx - float&lt;br /&gt;
    stretchy - float&lt;br /&gt;
    zoom - float&lt;br /&gt;
&lt;br /&gt;
    TShowImg_Flash (TShowImg_Values):&lt;br /&gt;
      flash - object [R]&lt;br /&gt;
&lt;br /&gt;
    TShowImg_Gani (TShowImg_Values):&lt;br /&gt;
      actor - object [R]&lt;br /&gt;
&lt;br /&gt;
    TShowImg_Image (TShowImg_Values):&lt;br /&gt;
      height - float&lt;br /&gt;
      parth - integer&lt;br /&gt;
      partw - integer&lt;br /&gt;
      partx - integer&lt;br /&gt;
      party - integer&lt;br /&gt;
      width - float&lt;br /&gt;
&lt;br /&gt;
    TShowImg_Poly (TShowImg_Values):&lt;br /&gt;
      parth - integer&lt;br /&gt;
      partw - integer&lt;br /&gt;
      partx - integer&lt;br /&gt;
      party - integer&lt;br /&gt;
&lt;br /&gt;
    TShowImg_Shape (TShowImg_Values):&lt;br /&gt;
      lightcolor - string&lt;br /&gt;
      lightdirection - string&lt;br /&gt;
      shadowdirection - string&lt;br /&gt;
&lt;br /&gt;
    TShowImg_Text (TShowImg_Values):&lt;br /&gt;
      parth - integer&lt;br /&gt;
      partw - integer&lt;br /&gt;
      partx - integer&lt;br /&gt;
      party - integer&lt;br /&gt;
      shadowcolor - string&lt;br /&gt;
      shadowoffset - string&lt;br /&gt;
      textshadow - boolean&lt;br /&gt;
&lt;br /&gt;
  TStaticVar (TGraalVar):&lt;br /&gt;
    destroy()&lt;br /&gt;
&lt;br /&gt;
    Array (TStaticVar):&lt;br /&gt;
      initialize(params...)&lt;br /&gt;
&lt;br /&gt;
    Color (TStaticVar):&lt;br /&gt;
      initialize(obj)&lt;br /&gt;
      setrgb(int)&lt;br /&gt;
&lt;br /&gt;
    Date (TStaticVar):&lt;br /&gt;
      initialize(params...)&lt;br /&gt;
&lt;br /&gt;
    Math (TStaticVar):&lt;br /&gt;
      abs(float) - returns float&lt;br /&gt;
      floor(float) - returns integer&lt;br /&gt;
      random() - returns float&lt;br /&gt;
      sin(float) - returns float&lt;br /&gt;
      sqrt(float) - returns float&lt;br /&gt;
&lt;br /&gt;
    Sound (TStaticVar):&lt;br /&gt;
      initialize(params...)&lt;br /&gt;
&lt;br /&gt;
    String (TStaticVar):&lt;br /&gt;
      initialize(params...)&lt;br /&gt;
&lt;br /&gt;
  TTilesLayer (TGraalVar):&lt;br /&gt;
    alpha - float&lt;br /&gt;
    blue - float&lt;br /&gt;
    green - float&lt;br /&gt;
    layerindex - integer [R]&lt;br /&gt;
    offset - string&lt;br /&gt;
    red - float&lt;br /&gt;
    x - float&lt;br /&gt;
    y - float&lt;br /&gt;
    z - float&lt;br /&gt;
    updateboard(int, int, int, int)&lt;br /&gt;
&lt;br /&gt;
  TUpdatePackage (TGraalVar):&lt;br /&gt;
    accounts - object [R]&lt;br /&gt;
    description - string [R]&lt;br /&gt;
    downloadcomplete - boolean [R]&lt;br /&gt;
    downloadedsize - integer [R]&lt;br /&gt;
    filecount - integer [R]&lt;br /&gt;
    filedownloadedsize - integer [R]&lt;br /&gt;
    filename - string [R]&lt;br /&gt;
    filetotalsize - integer [R]&lt;br /&gt;
    isuninstalled - boolean [R]&lt;br /&gt;
    lastdownloadfile - string [R]&lt;br /&gt;
    localversion - float [R]&lt;br /&gt;
    mode - string [R]&lt;br /&gt;
    name - string [R]&lt;br /&gt;
    parent - object [R]&lt;br /&gt;
    platform - string [R]&lt;br /&gt;
    protectoverwrite - boolean [R]&lt;br /&gt;
    totalsize - integer [R]&lt;br /&gt;
    usechecksum - boolean [R]&lt;br /&gt;
    version - float [R]&lt;br /&gt;
    reinstall() - returns boolean&lt;br /&gt;
    uninstall() - returns boolean&lt;br /&gt;
    update() - returns boolean&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=GUI Objects=&lt;br /&gt;
GUI Objects are currently well documented starting here [[Creation/Dev/Script/Client/GuiControl]].&lt;br /&gt;
&lt;br /&gt;
=Global=&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  $pref::audio::choosenvoicecodec - integer&lt;br /&gt;
  $pref::audio::microactivatebyvolume - boolean&lt;br /&gt;
  $pref::audio::microactivationlevel - integer&lt;br /&gt;
  $pref::audio::microinputdevice - integer&lt;br /&gt;
  $pref::audio::microon - boolean&lt;br /&gt;
  $pref::audio::microvolumefactor - integer&lt;br /&gt;
  $pref::audio::midivolume - integer&lt;br /&gt;
  $pref::audio::mp3volume - integer&lt;br /&gt;
  $pref::audio::radiovolume - integer&lt;br /&gt;
  $pref::audio::reversestereo - boolean&lt;br /&gt;
  $pref::audio::sfxvolume - integer&lt;br /&gt;
  $pref::audio::voicevolume - integer&lt;br /&gt;
  $pref::capture::allowbyscript - boolean [R]&lt;br /&gt;
  $pref::capture::area - string&lt;br /&gt;
  $pref::capture::audiobitrate - integer&lt;br /&gt;
  $pref::capture::disabledaynight - boolean&lt;br /&gt;
  $pref::capture::format - string&lt;br /&gt;
  $pref::capture::fps - integer&lt;br /&gt;
  $pref::capture::hideinterface - boolean&lt;br /&gt;
  $pref::capture::recordaudio - boolean&lt;br /&gt;
  $pref::capture::showmouse - boolean&lt;br /&gt;
  $pref::capture::size - string&lt;br /&gt;
  $pref::capture::videobitrate - integer&lt;br /&gt;
  $pref::graal::allowglobalpms - boolean&lt;br /&gt;
  $pref::graal::automapping - boolean&lt;br /&gt;
  $pref::graal::defaultfontname - string&lt;br /&gt;
  $pref::graal::defaultfontsize - integer&lt;br /&gt;
  $pref::graal::dontconnectlevels - boolean&lt;br /&gt;
  $pref::graal::dontloadlistheads - boolean&lt;br /&gt;
  $pref::graal::dontsavepasswords - boolean&lt;br /&gt;
  $pref::graal::dontsavepms - boolean&lt;br /&gt;
  $pref::graal::fixedport - boolean&lt;br /&gt;
  $pref::graal::fixedudpport - integer&lt;br /&gt;
  $pref::graal::language - string&lt;br /&gt;
  $pref::graal::limitnicknames - boolean&lt;br /&gt;
  $pref::graal::loadbuddylistfromserver - boolean&lt;br /&gt;
  $pref::graal::nicknamelimit - integer&lt;br /&gt;
  $pref::graal::nomassmessages - boolean&lt;br /&gt;
  $pref::graal::notoalls - boolean&lt;br /&gt;
  $pref::graal::noudp - boolean&lt;br /&gt;
  $pref::graal::showyourselfonbuddylists - boolean&lt;br /&gt;
  $pref::input::mousesensitivity - float&lt;br /&gt;
  $pref::interior::lockarrays - boolean&lt;br /&gt;
  $pref::video::defaultguistyle - string&lt;br /&gt;
  $pref::video::detailfactor - float&lt;br /&gt;
  $pref::video::fogdistance - float&lt;br /&gt;
  $pref::video::fullscreenmode - string&lt;br /&gt;
  $pref::video::resolution - integer&lt;br /&gt;
  $pref::video::screenshotformat - string&lt;br /&gt;
  $pref::video::visibledistance - float&lt;br /&gt;
  $pref::video::windowmode - string&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Fowlplay4</name></author>
	</entry>
	<entry>
		<id>https://graalonline.net/index.php?title=Creation/Dev/Script/Clientside_Functions&amp;diff=17963</id>
		<title>Creation/Dev/Script/Clientside Functions</title>
		<link rel="alternate" type="text/html" href="https://graalonline.net/index.php?title=Creation/Dev/Script/Clientside_Functions&amp;diff=17963"/>
		<updated>2011-02-28T22:33:42Z</updated>

		<summary type="html">&lt;p&gt;Fowlplay4: /* GUI Objects */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Scripting Reference]]&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;2&amp;quot; width=&amp;quot;50%&amp;quot;&lt;br /&gt;
|[R]&lt;br /&gt;
| denotes it is read-only.&lt;br /&gt;
|-&lt;br /&gt;
|[3D]&lt;br /&gt;
| denotes it is a Graal3D function.&lt;br /&gt;
|-&lt;br /&gt;
|[opengl]&lt;br /&gt;
| denotes it is functional only in opengl mode.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Variables==&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;2&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
| '''Variable'''&lt;br /&gt;
|width=&amp;quot;100px&amp;quot;|'''Type'''&lt;br /&gt;
| '''Notes'''&lt;br /&gt;
|-&lt;br /&gt;
| allfeatures&lt;br /&gt;
| ''integer [R]''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| allplayerscount&lt;br /&gt;
| ''integer [R]''&lt;br /&gt;
| Returns the count of all players on your playerlist, including IRC bots.&lt;br /&gt;
|-&lt;br /&gt;
| allrenderobjecttypes&lt;br /&gt;
| ''integer [R]''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| allstats &lt;br /&gt;
| ''integer [R]''&lt;br /&gt;
| Used with showstats() in order to show all stats.&lt;br /&gt;
|-&lt;br /&gt;
| canspin&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| Returns true of false if the player has spin attack.&lt;br /&gt;
|-&lt;br /&gt;
| carriesblackstone&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| Returns whether the player is carrying a black stone.&lt;br /&gt;
|-&lt;br /&gt;
| carriesbush&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| Returns whether the player is carrying a bush.&lt;br /&gt;
|-&lt;br /&gt;
| carriesnpc&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| Returns whether the player is carrying an NPC&lt;br /&gt;
|-&lt;br /&gt;
| carriessign&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| Returns whether the player is carrying a sign.&lt;br /&gt;
|-&lt;br /&gt;
| carriesstone&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| Returns whether the player is carrying a stone.&lt;br /&gt;
|-&lt;br /&gt;
| carriesvase&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| Returns whether the player is carrying a vase.&lt;br /&gt;
|-&lt;br /&gt;
| downloadfile&lt;br /&gt;
| ''string [R]''&lt;br /&gt;
| Returns the currently downloaded file.&lt;br /&gt;
|-&lt;br /&gt;
| downloadpos&lt;br /&gt;
| ''integer [R]''&lt;br /&gt;
| Returns the position of the currently downloaded file.&lt;br /&gt;
|-&lt;br /&gt;
| downloadsize&lt;br /&gt;
| ''integer [R]''&lt;br /&gt;
| Returns the size of the currently downloaded file.&lt;br /&gt;
|-&lt;br /&gt;
| editingmission&lt;br /&gt;
| ''boolean''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| emoticonchar&lt;br /&gt;
| ''string [R]''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| focusx&lt;br /&gt;
| ''float [R]''&lt;br /&gt;
| Position of the camera in tile units.&lt;br /&gt;
|-&lt;br /&gt;
| focusy&lt;br /&gt;
| ''float [R]''&lt;br /&gt;
| Position of the camera in tile units.&lt;br /&gt;
|-&lt;br /&gt;
| ghostsnear&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| If a ghost(observer) is in the same level as the player.&lt;br /&gt;
|-&lt;br /&gt;
| graalplugincookie&lt;br /&gt;
| ''string [R]''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| graalversion&lt;br /&gt;
| ''float [R]''&lt;br /&gt;
| Version of Graal the player is using.&lt;br /&gt;
|-&lt;br /&gt;
| gravity&lt;br /&gt;
| ''float''&lt;br /&gt;
| The gravity value that effects how fast projectiles fall. It universally effects all projectiles.&lt;br /&gt;
|-&lt;br /&gt;
| installedlanguages&lt;br /&gt;
| ''string [R]''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| isapplicationactive&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| Is Graal window active?&lt;br /&gt;
|-&lt;br /&gt;
| iscarrying&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| Returns true of false if the player is carrying something.&lt;br /&gt;
|-&lt;br /&gt;
| isfocused&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| isgraal3d&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| isgraalplugin&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| isleader&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| Player was the first to enter the level.&lt;br /&gt;
|-&lt;br /&gt;
| isonmap&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| Player is on a map.&lt;br /&gt;
|-&lt;br /&gt;
| isopengl&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| Graal is in opengl mode.&lt;br /&gt;
|-&lt;br /&gt;
| isrecordingvideo&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| Player is currently recording(alt+6) Graal.&lt;br /&gt;
|-&lt;br /&gt;
| jpegquality&lt;br /&gt;
| ''integer''&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| isgraalplugin&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| lastdownloadfile&lt;br /&gt;
| ''string [R]''&lt;br /&gt;
| The last file downloaded.&lt;br /&gt;
|-&lt;br /&gt;
| leftmousebutton&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| If the left mouse button is pressed.&lt;br /&gt;
|-&lt;br /&gt;
| leftmousebuttonglobal&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| If the left mouse button is pressed. Returns whether mouse is in focus of GUIs or not.&lt;br /&gt;
|-&lt;br /&gt;
| levelorgx&lt;br /&gt;
| ''float [R]''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| levelorgy&lt;br /&gt;
| ''float [R]''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| lighteffectsenabled&lt;br /&gt;
| ''boolean''&lt;br /&gt;
| Whether the player has their lights enabled via options.&lt;br /&gt;
|-&lt;br /&gt;
| middlemousebutton&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| If the middle mouse button is pressed&lt;br /&gt;
|-&lt;br /&gt;
| middlemousebuttonglobal&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| If the middle mouse button is pressed. Returns whether mouse is in focus of GUIs or not.&lt;br /&gt;
|-&lt;br /&gt;
| mousebuttons &lt;br /&gt;
| ''integer [R]''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| mousebuttonsglobal&lt;br /&gt;
| ''integer [R]''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| mousepitch&lt;br /&gt;
| ''float [R] [3D]''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| mousescreenx &lt;br /&gt;
| ''integer''&lt;br /&gt;
| Position of the mouse in the Graal screen, in pixel units on the x-axis.&lt;br /&gt;
|-&lt;br /&gt;
| mousescreeny &lt;br /&gt;
| ''integer''&lt;br /&gt;
| Position of the mouse in the Graal screen, in pixel units on the y-axis.&lt;br /&gt;
|-&lt;br /&gt;
| mousewheeldelta&lt;br /&gt;
| ''integer [R]''&lt;br /&gt;
| How much the mouse wheel has been scrolled.&lt;br /&gt;
|-&lt;br /&gt;
| mousex&lt;br /&gt;
| ''float''&lt;br /&gt;
| Position of the mouse in the level, in tile units, on the x-axis.&lt;br /&gt;
|-&lt;br /&gt;
| mousey&lt;br /&gt;
| ''float''&lt;br /&gt;
| Position of the mouse in the level, in tile units, on the y-axis&lt;br /&gt;
|-&lt;br /&gt;
| mouseyaw&lt;br /&gt;
| ''float [R] [3D]''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| musiclen &lt;br /&gt;
| ''integer [R]''&lt;br /&gt;
| Length of current playing '''MP3'''&lt;br /&gt;
|-&lt;br /&gt;
| musicpos&lt;br /&gt;
| ''integer [R]''&lt;br /&gt;
| Position of current playing '''MP3'''&lt;br /&gt;
|-&lt;br /&gt;
| particleeffectsenabled&lt;br /&gt;
| ''boolean''&lt;br /&gt;
| If player has particles enabled in their options.&lt;br /&gt;
|-&lt;br /&gt;
| rightmousebutton &lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| If the right mouse button is pressed&lt;br /&gt;
|-&lt;br /&gt;
| rightmousebuttonglobal &lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| If the right mouse button is pressed. Returns whether mouse is in focus of GUIs or not.&lt;br /&gt;
|-&lt;br /&gt;
| screenheight&lt;br /&gt;
| ''integer [R]''&lt;br /&gt;
| Height of the Graal screen in pixel units.&lt;br /&gt;
|-&lt;br /&gt;
| screenwidth&lt;br /&gt;
| ''integer [R]''&lt;br /&gt;
| Width of the Graal screen in pixel units.&lt;br /&gt;
|-&lt;br /&gt;
| scriptedcontrols &lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| scriptedplayerlist&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| Whether the player has the scripted playerlist enabled.&lt;br /&gt;
|-&lt;br /&gt;
| scriptlogwritetoreadonly&lt;br /&gt;
| ''boolean''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| selectedlistplayers&lt;br /&gt;
| ''object''&lt;br /&gt;
| An object of all players selected on the playerlist.&lt;br /&gt;
|-&lt;br /&gt;
| selectedsword &lt;br /&gt;
| ''integer''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| selectedweapon &lt;br /&gt;
| ''integer''&lt;br /&gt;
| Index of the currently selected weapon.&lt;br /&gt;
|-&lt;br /&gt;
| servername&lt;br /&gt;
| ''string [R]''&lt;br /&gt;
| Name of the server.&lt;br /&gt;
|-&lt;br /&gt;
| serverstartconnect &lt;br /&gt;
| ''string''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| serverstartparams &lt;br /&gt;
| ''string''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| shotbybaddy&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| If the player is shot by a baddy(default) arrow.&lt;br /&gt;
|-&lt;br /&gt;
| shotbyplayer&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| If the player is shot by another players arrow.&lt;br /&gt;
|-&lt;br /&gt;
| showterraingrid&lt;br /&gt;
| ''boolean''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| spritesimage&lt;br /&gt;
| ''string''&lt;br /&gt;
| Filename of the currently set sprite image.&lt;br /&gt;
|-&lt;br /&gt;
| statusimage&lt;br /&gt;
| ''string''&lt;br /&gt;
| Filename of the currently set state image.&lt;br /&gt;
|-&lt;br /&gt;
| timevar&lt;br /&gt;
| ''integer [R].''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| timevar2&lt;br /&gt;
| ''float [R]''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| timevar3&lt;br /&gt;
| ''float [R] [3D]''&lt;br /&gt;
| Synchronized time which works on both server and client-side, precision is milliseconds.&lt;br /&gt;
|-&lt;br /&gt;
| wasshooted&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| If the player is shot by a default arrow.&lt;br /&gt;
|-&lt;br /&gt;
| waterheight&lt;br /&gt;
| ''float''&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| weapons&lt;br /&gt;
| ''object [R]''&lt;br /&gt;
| all the players weapons, this includes login inherited weapons.&lt;br /&gt;
|-&lt;br /&gt;
| weaponsenabled&lt;br /&gt;
| ''boolean''&lt;br /&gt;
| If the players weapons are enabled via disableweapons()/enableweapons().&lt;br /&gt;
|-&lt;br /&gt;
| weathereffectsenabled&lt;br /&gt;
| ''boolean''&lt;br /&gt;
| If weather is enabled in the players options.&lt;br /&gt;
|-&lt;br /&gt;
| worldclockstopped&lt;br /&gt;
| ''boolean''&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| worldhour &lt;br /&gt;
| ''integer''&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| worldminute &lt;br /&gt;
| ''float''&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| worldminutesofday &lt;br /&gt;
| ''float''&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| worldrealsecondsperday &lt;br /&gt;
| ''float''&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Functions=&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;2&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
| '''Variable'''&lt;br /&gt;
|width=&amp;quot;100px&amp;quot;|'''Type'''&lt;br /&gt;
| '''Notes'''&lt;br /&gt;
|-&lt;br /&gt;
| addcontrol(object)&lt;br /&gt;
|&lt;br /&gt;
| adds 'object' to the parent control.&lt;br /&gt;
|-&lt;br /&gt;
| addmaterialmapping(string, string)&lt;br /&gt;
| [3D]&lt;br /&gt;
| returns boolean.&lt;br /&gt;
|-&lt;br /&gt;
| addtiledef(string image, string prefix, int format)&lt;br /&gt;
| &lt;br /&gt;
| Adds a tileset definition with the supplied tileset image, level prefix and tileset format (0=pics1, 1=new world, 5=terrain).&lt;br /&gt;
|-&lt;br /&gt;
| addtiledef2(string image, string prefix, int x, int y)&lt;br /&gt;
| &lt;br /&gt;
| Overlays an image on the tileset with the supplied tileset image and level prefix. Parameters 'x' and 'y' represent the x and y position on the tileset of where to place the new image.&lt;br /&gt;
|-&lt;br /&gt;
| aindexof(float, array)&lt;br /&gt;
| &lt;br /&gt;
| Returns integer - the position of 'float' in the array.&lt;br /&gt;
|-&lt;br /&gt;
| arccos(float)&lt;br /&gt;
| &lt;br /&gt;
| Returns float - the arc cosine of 'float'.&lt;br /&gt;
|-&lt;br /&gt;
| arcsin(float)&lt;br /&gt;
| &lt;br /&gt;
| Returns float - the arc sine of 'float'.&lt;br /&gt;
|-&lt;br /&gt;
| attachplayertoobj(integer1, integer2)&lt;br /&gt;
| &lt;br /&gt;
| Attaches the player to the object with the matching ID where integer1 is the object type (currently only NPCs - 0) and integer2 is the ID of the desired object.&lt;br /&gt;
|-&lt;br /&gt;
| base64decode(string)&lt;br /&gt;
| &lt;br /&gt;
| Returns string - Decodes a base64 string.&lt;br /&gt;
|-&lt;br /&gt;
| base64encode(string)&lt;br /&gt;
| &lt;br /&gt;
| Returns string - Encodes string in to several characters of a 64 printable character set (A-Z, a-z, 0-9, + and /, while &amp;quot;=&amp;quot; is a special suffix code)&lt;br /&gt;
|-&lt;br /&gt;
| boxcontains(string, string)&lt;br /&gt;
| &lt;br /&gt;
| returns boolean.&lt;br /&gt;
|-&lt;br /&gt;
| boxcontainsvector(string, string)&lt;br /&gt;
| &lt;br /&gt;
| returns boolean&lt;br /&gt;
|-&lt;br /&gt;
| boxintersect(string, string)&lt;br /&gt;
| &lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| boxoverlaps(string, string)&lt;br /&gt;
| &lt;br /&gt;
| returns boolean&lt;br /&gt;
|-&lt;br /&gt;
| boxscale(string, string)&lt;br /&gt;
| &lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| callnpc(int index, string function)&lt;br /&gt;
| &lt;br /&gt;
| Calls a function from an NPC where 'index' is the NPC's index and 'function' is the function name.&lt;br /&gt;
|-&lt;br /&gt;
| callweapon(int index, string function)&lt;br /&gt;
| &lt;br /&gt;
| Calls a function from a weapon where 'index' is the weapon's index and 'function' is the function name.&lt;br /&gt;
|-&lt;br /&gt;
| castray({x,y,x}, {x,y,z}, string type)&lt;br /&gt;
| [3D]&lt;br /&gt;
| returns object - specify the start and end of the ray, and the object types (e.g. &amp;quot;staticts,terrain,interior&amp;quot;)&lt;br /&gt;
|-&lt;br /&gt;
| checksum(string)&lt;br /&gt;
| &lt;br /&gt;
| returns float&lt;br /&gt;
|-&lt;br /&gt;
| contains(string2, string1)&lt;br /&gt;
| &lt;br /&gt;
| returns boolean - True if string1 is contained within string2.&lt;br /&gt;
|-&lt;br /&gt;
| copystrings(string, string)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| cursoroff()&lt;br /&gt;
| [opengl]&lt;br /&gt;
| Disables the visible mouse cursor.&lt;br /&gt;
|-&lt;br /&gt;
| cursoron()&lt;br /&gt;
| [opengl]&lt;br /&gt;
| Enables the visible mouse cursor.&lt;br /&gt;
|-&lt;br /&gt;
| degtorad(float)&lt;br /&gt;
| &lt;br /&gt;
| returns float - Converts angle measurements of degrees to radians&lt;br /&gt;
|-&lt;br /&gt;
| detachplayer()&lt;br /&gt;
| &lt;br /&gt;
| Detaches a player from an attached object.&lt;br /&gt;
|-&lt;br /&gt;
| disabledefmovement()&lt;br /&gt;
| &lt;br /&gt;
| Disables the default movement system and controls(including weapons, sword, grab. Does not include Q-menu, pause, map...).&lt;br /&gt;
|-&lt;br /&gt;
| disablemap()&lt;br /&gt;
| &lt;br /&gt;
| Disables the default map (M).&lt;br /&gt;
|-&lt;br /&gt;
| disablepause()&lt;br /&gt;
| &lt;br /&gt;
| Disables the default pause (P).&lt;br /&gt;
|-&lt;br /&gt;
| disableselectweapons()&lt;br /&gt;
| &lt;br /&gt;
| Disables the default Q-menu (Q).&lt;br /&gt;
|-&lt;br /&gt;
| disableweapons()&lt;br /&gt;
| &lt;br /&gt;
| Disables the default sword (S) and weapons (D).&lt;br /&gt;
|-&lt;br /&gt;
| echo(string)&lt;br /&gt;
| &lt;br /&gt;
| echos 'string' to the debug window(F2).&lt;br /&gt;
|-&lt;br /&gt;
| enabledefmovement()&lt;br /&gt;
| &lt;br /&gt;
| Enables the default movement system.&lt;br /&gt;
|-&lt;br /&gt;
| [[Creation/Dev/Script/Functions/enablefeatures(int)|enablefeatures(int)]]&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| enablemap()&lt;br /&gt;
| &lt;br /&gt;
| Enables the default map system(M).&lt;br /&gt;
|-&lt;br /&gt;
| enablepause()&lt;br /&gt;
| &lt;br /&gt;
| Enables the default pause system(P).&lt;br /&gt;
|-&lt;br /&gt;
| enableselectweapons()&lt;br /&gt;
| &lt;br /&gt;
| Enables the default Q-menu(Q).&lt;br /&gt;
|-&lt;br /&gt;
| enableweapons()&lt;br /&gt;
| &lt;br /&gt;
| Enables the default sword(S) and weapons(D).&lt;br /&gt;
|-&lt;br /&gt;
| escapestring(string)&lt;br /&gt;
| &lt;br /&gt;
| returns string - adds \\ in front of &amp;quot;, ' and \\, and removes non-printable characters&lt;br /&gt;
|-&lt;br /&gt;
| explodebomb(integer)&lt;br /&gt;
| &lt;br /&gt;
| explodes the bomb with the id of 'integer'.&lt;br /&gt;
|-&lt;br /&gt;
| extractfilebase(string)&lt;br /&gt;
| &lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| extractfileext(string)&lt;br /&gt;
| &lt;br /&gt;
| Takes in a file name, and returns its extension. &lt;br /&gt;
|-&lt;br /&gt;
| extractfilepath(string)&lt;br /&gt;
| &lt;br /&gt;
| returns string &lt;br /&gt;
|-&lt;br /&gt;
| fileexists(string)&lt;br /&gt;
| &lt;br /&gt;
| returns boolean of whether the file 'str' exists in the players Graal/ directory(does not search subfolders).&lt;br /&gt;
|-&lt;br /&gt;
| filesize(string)&lt;br /&gt;
| &lt;br /&gt;
| Returns the size(int) of the file 'string' in the players Graal/ directory(does not search subfolders).&lt;br /&gt;
|-&lt;br /&gt;
| fileupdate(string)&lt;br /&gt;
| &lt;br /&gt;
| returns boolean&lt;br /&gt;
|-&lt;br /&gt;
| findani(string)&lt;br /&gt;
| &lt;br /&gt;
| returns object&lt;br /&gt;
|-&lt;br /&gt;
| findfiles(string, integer)&lt;br /&gt;
| &lt;br /&gt;
| returns object&lt;br /&gt;
|-&lt;br /&gt;
| findlevel(string)&lt;br /&gt;
| &lt;br /&gt;
| returns object&lt;br /&gt;
|-&lt;br /&gt;
| findnearestplayer(float1, float2)&lt;br /&gt;
| &lt;br /&gt;
| Returns the closest player's object relevant to float1 and float2.&lt;br /&gt;
|-&lt;br /&gt;
| findnearestplayers(float, float)&lt;br /&gt;
| &lt;br /&gt;
| Returns the closest players' object relevant to float1 and float2.&lt;br /&gt;
|-&lt;br /&gt;
| findnpcbyid(integer)&lt;br /&gt;
|&lt;br /&gt;
| Returns the NPC object with the ID of 'int'.&lt;br /&gt;
|-&lt;br /&gt;
| findpathinarray(obj1, obj2, obj3, obj4, obj5, int, int, int)&lt;br /&gt;
|&lt;br /&gt;
| Returns object - Simple path-finding: Obj1 being tiles that allow walking, Obj2 being tiles that don't allow walking, Obj3; tiles that shouldn't be allowed to walked on, Obj4; tiles that are able to be walked on, Obj5; tiles where we may stop. Integers are relevant to the startx, starty and maximum path length. - Arrays for allowed/non-allowed tiles are only checked if they aren't null.&lt;br /&gt;
|-&lt;br /&gt;
| findplayer(string)&lt;br /&gt;
|&lt;br /&gt;
| Returns the player object with the account equal to string.&lt;br /&gt;
|-&lt;br /&gt;
| findplayerbycommunityname(string)&lt;br /&gt;
|&lt;br /&gt;
| Returns the player object with the community name equal to string.&lt;br /&gt;
|-&lt;br /&gt;
| findplayerbyid(integer)&lt;br /&gt;
|&lt;br /&gt;
| Returns the player object with the ID equal to integer.&lt;br /&gt;
|-&lt;br /&gt;
| findweapon(string)&lt;br /&gt;
|&lt;br /&gt;
| Returns the weapon object with the name equal to string.&lt;br /&gt;
|-&lt;br /&gt;
| format(string, string, ...)&lt;br /&gt;
|&lt;br /&gt;
| See [[Creation/Dev/Output_Methods#format.28.29_function|format()]]. &lt;br /&gt;
|- &lt;br /&gt;
| format2(string, array)&lt;br /&gt;
| &lt;br /&gt;
| Like format(), except that this expects the format string and an array of variables instead of passing the variables as separate parameters.&lt;br /&gt;
|-&lt;br /&gt;
| freefileresources(string)&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| freezeplayer(float)&lt;br /&gt;
|&lt;br /&gt;
| Freezes the player for the number of seconds specified by float.&lt;br /&gt;
|-&lt;br /&gt;
| get3dobjectat(float, float, boolean)&lt;br /&gt;
| [3D]&lt;br /&gt;
| Gets the 3d object at the specified screen position, third parameter true if it should do box collision.&lt;br /&gt;
|-&lt;br /&gt;
| get3dobjectatmouse(boolean)&lt;br /&gt;
| [3D]&lt;br /&gt;
| Gets the 3d object at the mouse.  Parameter true if it should do box collision.&lt;br /&gt;
|-&lt;br /&gt;
| get3dobjectbyray(string, string)&lt;br /&gt;
| [3D]&lt;br /&gt;
| returns object&lt;br /&gt;
|-&lt;br /&gt;
| get3dobjectsbybox(string, string)&lt;br /&gt;
| [3D]&lt;br /&gt;
| 1st parameter defines the box {minx,miny,minz, maxx,maxy,maxz}.  Second parameter specifies the type of object to find (e.g. &amp;quot;staticts,terrain,interior&amp;quot;)&lt;br /&gt;
|-&lt;br /&gt;
| get3dscreenposition(string, boolean)&lt;br /&gt;
| [3D]&lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| getanglesfromvector({x, y, z})&lt;br /&gt;
|&lt;br /&gt;
| Returns an array that contains the angles the 3D vector {x, y, z} makes with the X-Y and X-Z axes.&lt;br /&gt;
|-&lt;br /&gt;
| getascii(string)&lt;br /&gt;
|&lt;br /&gt;
| Returns the [http://www.asciitable.com/ ascii] code for string.&lt;br /&gt;
|-&lt;br /&gt;
| getbasepackage()&lt;br /&gt;
|&lt;br /&gt;
| returns object&lt;br /&gt;
|-&lt;br /&gt;
| getboxcenter(string)&lt;br /&gt;
|&lt;br /&gt;
| Returns an array containing the center of a 3D box specified by string ({x0,y0,z0,x1,y1,z1,...}).&lt;br /&gt;
|-&lt;br /&gt;
| getdesktopresolution()&lt;br /&gt;
|&lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| getdisplaydevicelist()&lt;br /&gt;
|&lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| getdownloadedupdatepackagesize()&lt;br /&gt;
|&lt;br /&gt;
| Returns the size of the downloaded update package.&lt;br /&gt;
|-&lt;br /&gt;
| getdownloadingpackage()&lt;br /&gt;
|&lt;br /&gt;
| Returns a reference to current update package being downloaded.&lt;br /&gt;
|-&lt;br /&gt;
| getdownloadingpackagescount()&lt;br /&gt;
|&lt;br /&gt;
| Returns a count of the number of update packages to download.&lt;br /&gt;
|-&lt;br /&gt;
| getdropz(string)&lt;br /&gt;
|&lt;br /&gt;
| returns float&lt;br /&gt;
|-&lt;br /&gt;
| getExtension(string)&lt;br /&gt;
|&lt;br /&gt;
| This function is the same as extractFileExt().  Takes in a file name, and returns its extension.&lt;br /&gt;
|-&lt;br /&gt;
| getfilemodtime(string)&lt;br /&gt;
|&lt;br /&gt;
| Returns a timestamp of when the file was last modified (in unix time compatible to timevar2). This function accepts both exact file path and plain file name.&lt;br /&gt;
|-&lt;br /&gt;
| gethttprequest(string, integer, string)&lt;br /&gt;
| &lt;br /&gt;
| returns object (This function is the same as requestHttp())&lt;br /&gt;
|-&lt;br /&gt;
| getimgheight(string)&lt;br /&gt;
|&lt;br /&gt;
| Returns the height (in pixels) of the filename indicated by string.&lt;br /&gt;
|-&lt;br /&gt;
| getimgpixel(string, integer, integer)&lt;br /&gt;
|&lt;br /&gt;
| returns object&lt;br /&gt;
|-&lt;br /&gt;
| getimgwidth(string)&lt;br /&gt;
|&lt;br /&gt;
| Returns the width(in pixels) of the filename indicated by string.&lt;br /&gt;
|-&lt;br /&gt;
| getkeycode(string)&lt;br /&gt;
|&lt;br /&gt;
| Returns the keycode of the key indicated by string.  The keycode returned can be used in keydown2().&lt;br /&gt;
|-&lt;br /&gt;
| getloginaccountname()&lt;br /&gt;
|&lt;br /&gt;
| Presumably used for the login server.  Use player.account instead.&lt;br /&gt;
|-&lt;br /&gt;
| getmapx(string)&lt;br /&gt;
| &lt;br /&gt;
| Gets the x coordinate location in the gmap of the level indicated by string.  The top-left level starts at (0, 0).&lt;br /&gt;
|-&lt;br /&gt;
| getmapy(string)&lt;br /&gt;
|&lt;br /&gt;
| Gets the y coordinate location in the gmap of the level indicated by string.  The top-left level starts at (0, 0).&lt;br /&gt;
|-&lt;br /&gt;
| getmusicfilename()&lt;br /&gt;
|&lt;br /&gt;
| Returns the filename of the music currently playing.&lt;br /&gt;
|-&lt;br /&gt;
| getmusicstatus()&lt;br /&gt;
|&lt;br /&gt;
| Returns the status of the music currently playing.&lt;br /&gt;
|-&lt;br /&gt;
| getmusictags()&lt;br /&gt;
|&lt;br /&gt;
| Returns the tags of the music currently playing.  This function can be used to retrieve the title and artist info of the music.&lt;br /&gt;
|-&lt;br /&gt;
| getnearestplayer(float, float)&lt;br /&gt;
|&lt;br /&gt;
| Deprecated.  Use findnearestplayer() instead.&lt;br /&gt;
|-&lt;br /&gt;
| getnearestplayers(float, float)&lt;br /&gt;
|&lt;br /&gt;
| Deprecated.  Use findnearestplayers() instead.&lt;br /&gt;
|-&lt;br /&gt;
| getpackagesdownloadcomplete()&lt;br /&gt;
|&lt;br /&gt;
| Returns 'true' if the package downloads are complete.&lt;br /&gt;
|-&lt;br /&gt;
| getpackagesdownloaded()&lt;br /&gt;
|&lt;br /&gt;
| Returns 'true' if the most recent packages are already downloaded.&lt;br /&gt;
|-&lt;br /&gt;
| getplatform()&lt;br /&gt;
|&lt;br /&gt;
| Returns the platform that the player is using.  (i.e. windows, mac, or linux)&lt;br /&gt;
|-&lt;br /&gt;
| getresolutionlist(string)&lt;br /&gt;
|&lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| getservername()&lt;br /&gt;
|&lt;br /&gt;
| Returns the name of the server the player is currently connected to.&lt;br /&gt;
|-&lt;br /&gt;
| getstringkeys(string)&lt;br /&gt;
|&lt;br /&gt;
| Returns an array of the variables that begins with the supplied string.&lt;br /&gt;
|-&lt;br /&gt;
| getterraintexture(float, float)&lt;br /&gt;
|&lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| getterraintextureindex(float, float)&lt;br /&gt;
|&lt;br /&gt;
| returns integer&lt;br /&gt;
|-&lt;br /&gt;
| gettextheight(float zoom, string style, string font)&lt;br /&gt;
|&lt;br /&gt;
| returns integer - The height in pixels of the text with the given zoom, style and font.&lt;br /&gt;
|-&lt;br /&gt;
| gettextwidth(float zoom, string style, string font, string text)&lt;br /&gt;
|&lt;br /&gt;
| returns integer - The width of the text with the given zoom, style, font and text.&lt;br /&gt;
|-&lt;br /&gt;
| gettileset()&lt;br /&gt;
|&lt;br /&gt;
| returns string - the current main tileset (pics1.png, picso.png etc.)&lt;br /&gt;
|-&lt;br /&gt;
| gettilesettype()&lt;br /&gt;
|&lt;br /&gt;
| returns integer - the current tileset type (pics1.png:0, picso.png:5 etc.)&lt;br /&gt;
|-&lt;br /&gt;
| gettotalupdatepackagesize()&lt;br /&gt;
|&lt;br /&gt;
| returns integer - The total size of the update packages.&lt;br /&gt;
|-&lt;br /&gt;
| getupdatepackage(string name)&lt;br /&gt;
|&lt;br /&gt;
| returns object - A reference to the update package with the given name.&lt;br /&gt;
|-&lt;br /&gt;
| getvectorfromangles(float, float)&lt;br /&gt;
|&lt;br /&gt;
| returns string&lt;br /&gt;
|- &lt;br /&gt;
| getz(float, float)&lt;br /&gt;
|&lt;br /&gt;
| returns float&lt;br /&gt;
|-&lt;br /&gt;
| graalcontrolhasfocus(bool)&lt;br /&gt;
|&lt;br /&gt;
| returns boolean - Whether or not the graal control has focus.  Parameter says if it should also check if the chat bar has the focus&lt;br /&gt;
|-&lt;br /&gt;
| hideplayer(float time)&lt;br /&gt;
|&lt;br /&gt;
| Hides player for the specified amount of time.&lt;br /&gt;
|-&lt;br /&gt;
| hidesword(float time)&lt;br /&gt;
|&lt;br /&gt;
| Hides the player's sword for the specified amount of time.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;  hitnpc(int, float, float, float)&lt;br /&gt;
  hitobjects(float, float, float)&lt;br /&gt;
  hitplayer(int, float, float, float)&lt;br /&gt;
  isadminguild(str) - returns boolean&lt;br /&gt;
  isclassloaded(str) - returns boolean&lt;br /&gt;
  iscursoron() - returns boolean&lt;br /&gt;
  isdevicefullscreenonly(str) - returns boolean&lt;br /&gt;
  isdownloading(str) - returns boolean - checks if a file is currently downloaded or requested from the server&lt;br /&gt;
  isdownloadingfiles() - returns boolean - checks if Graal is currently downloading or requesting files from the server&lt;br /&gt;
  isfullscreenmode() - returns boolean&lt;br /&gt;
  isimgpixeltransparent(str, int, int) - returns boolean&lt;br /&gt;
  isimgrectangletransparent(str, int, int, int, int) - returns boolean&lt;br /&gt;
  ismusicplaying() - returns boolean&lt;br /&gt;
  isobject(str) - returns boolean&lt;br /&gt;
  issoundplaying(str) - returns boolean&lt;br /&gt;
  keydown(int) - returns boolean&lt;br /&gt;
  keydown2(int, bool) - returns boolean&lt;br /&gt;
  keydown2global(int, bool) - returns boolean&lt;br /&gt;
  keydownglobal(int) - returns boolean&lt;br /&gt;
  keyname(int) - returns string&lt;br /&gt;
  lay2(str, float, float)&lt;br /&gt;
  lightscene() - returns boolean&lt;br /&gt;
  loadclass(str)&lt;br /&gt;
  loadmap(str)&lt;br /&gt;
  loadtranslation(str)&lt;br /&gt;
  lowercase(str) - returns string&lt;br /&gt;
  ltmfs(bool)&lt;br /&gt;
  ltmmax(float, float)&lt;br /&gt;
  ltmmin(float, float)&lt;br /&gt;
  makescreenshot2(str, int, float, float, float, int, int)&lt;br /&gt;
  matrixcreate(str, str) - returns string&lt;br /&gt;
  matrixcreatefromeuler(str) - returns string&lt;br /&gt;
  matrixmulpoint(str, str) - returns string&lt;br /&gt;
  matrixmultiply(str, str) - returns string&lt;br /&gt;
  matrixmulvector(str, str) - returns string&lt;br /&gt;
  md5(str) - returns string&lt;br /&gt;
  noplayerkilling()&lt;br /&gt;
  onwall(float, float) - returns boolean&lt;br /&gt;
  onwall2(float, float, float, float) - returns boolean&lt;br /&gt;
  onwater(float, float) - returns boolean&lt;br /&gt;
  onwater2(float, float, float, float) - returns boolean&lt;br /&gt;
  opengraalurl(str)&lt;br /&gt;
  openurl(str)&lt;br /&gt;
  openurl2(str, int, int)&lt;br /&gt;
  play(str)&lt;br /&gt;
  play2(str, float, float, float)&lt;br /&gt;
  play3d(str, bool, str, str)&lt;br /&gt;
  playlooped(str)&lt;br /&gt;
  playlooped2(str, float, float, float)&lt;br /&gt;
  popdialog()&lt;br /&gt;
  pushdialog(obj)&lt;br /&gt;
  putleaps(int, float, float)&lt;br /&gt;
  radtodeg(float) - returns float&lt;br /&gt;
  randomstring(str) - returns string&lt;br /&gt;
  removetiledefs(str)&lt;br /&gt;
  replaceani(str, str)&lt;br /&gt;
  requestfiledeletion(str)&lt;br /&gt;
  requestfilerename(str, str)&lt;br /&gt;
  requestfilesmove(str, str)&lt;br /&gt;
  requesthttp(str, int, str) - returns object&lt;br /&gt;
  requesttext(str, str)&lt;br /&gt;
  requesturl(str) - returns object&lt;br /&gt;
  resetfocus()&lt;br /&gt;
  rotationadd(str, str) - returns string&lt;br /&gt;
  rotationaddeuler(str, str) - returns string&lt;br /&gt;
  rotationfromeuler(str) - returns string&lt;br /&gt;
  rotationsub(str, str) - returns string&lt;br /&gt;
  rotationtoeuler(str) - returns string&lt;br /&gt;
  rungarbagecollector()&lt;br /&gt;
  savelog(str)&lt;br /&gt;
  say(int)&lt;br /&gt;
  say2(str)&lt;br /&gt;
  screenx(float, float) - returns integer&lt;br /&gt;
  screeny(float, float) - returns integer&lt;br /&gt;
  selectfilefordownload(str) - opens the select-file-dialog for the download location of files (from scripted RC)&lt;br /&gt;
  selectfileforupload() - opens the select-file-dialog for uploading of files (into scripted RC)&lt;br /&gt;
  sendrpgmessage(str)&lt;br /&gt;
  sendtext(str, str, params...)&lt;br /&gt;
  sendtorc(str)&lt;br /&gt;
  serverwarp(str)&lt;br /&gt;
  setani(str, str)&lt;br /&gt;
  setbeltcolor(str)&lt;br /&gt;
  setcoatcolor(str)&lt;br /&gt;
  setcontentcontrol(obj)&lt;br /&gt;
  setcursor2(str)&lt;br /&gt;
  seteffect(float, float, float, float)&lt;br /&gt;
  setfocus(float, float)&lt;br /&gt;
  setfogcolors(obj)&lt;br /&gt;
  setgender(str)&lt;br /&gt;
  sethead(str)&lt;br /&gt;
  setinteriorrendermode(int)&lt;br /&gt;
  setletters(str)&lt;br /&gt;
  setmap(str, str, float, float) - sets a text map (you can see the tiles of other levels but not the npcs), parameters are text file with level names, the map image (not used anymore), default x and y for the head icons; use gmaps if possible instead of this&lt;br /&gt;
  setminimap(str, str, float, float) - parameters are a text file with level names, the image, default x and y; use gmaps if possible instead of this&lt;br /&gt;
  setmusicvolume(float, float)&lt;br /&gt;
  setplayerdir(str)&lt;br /&gt;
  setshield(str, int)&lt;br /&gt;
  setshoecolor(str)&lt;br /&gt;
  setshootparams(str)&lt;br /&gt;
  setskincolor(str)&lt;br /&gt;
  setskybandcolors(obj)&lt;br /&gt;
  setskybandsizes(obj)&lt;br /&gt;
  setsleevecolor(str)&lt;br /&gt;
  setspritesimage(str)&lt;br /&gt;
  setstatusimage(str)&lt;br /&gt;
  setsuncolors(obj)&lt;br /&gt;
  setsword(str, int)&lt;br /&gt;
  setterrainrendermode(int)&lt;br /&gt;
  showstats(int)&lt;br /&gt;
  spyfire(int, int)&lt;br /&gt;
  startrecordvideo() - returns boolean&lt;br /&gt;
  stopmidi() - same as stopmusic(), kept for compatibility&lt;br /&gt;
  stopmusic()&lt;br /&gt;
  stoprecordvideo() - returns boolean&lt;br /&gt;
  stopsound(str)&lt;br /&gt;
  strcmp(str, str) - returns integer&lt;br /&gt;
  strequals(str, str) - returns boolean&lt;br /&gt;
  switchtoopengl()&lt;br /&gt;
  synctimeofday(float, float)&lt;br /&gt;
  takeplayercarry()&lt;br /&gt;
  takeplayerhorse()&lt;br /&gt;
  testplayer(float, float) - returns integer&lt;br /&gt;
  trace(str) - same as echo()&lt;br /&gt;
  triggeraction(float, float, str, params...)&lt;br /&gt;
  triggerserver(str, str)&lt;br /&gt;
  update3dterrain(float, float, float, float)&lt;br /&gt;
  updateboard(int, int, int, int)&lt;br /&gt;
  updateterrain()&lt;br /&gt;
  updatevisibledistance()&lt;br /&gt;
  uploadfile(str) - uploads a file, you must provide the full path provided by a onDropFiles() event, also this will only work if the scripted RC has currently a file browser window open; once the file is uploaded an onFilesUploaded event will be invoked&lt;br /&gt;
  uppercase(str) - returns string&lt;br /&gt;
  vectoradd(str, str) - returns string&lt;br /&gt;
  vectorcross(str, str) - returns string&lt;br /&gt;
  vectordist(str, str) - returns float&lt;br /&gt;
  vectordot(str, str) - returns float&lt;br /&gt;
  vectorlen(str) - returns float&lt;br /&gt;
  vectornormalize(str) - returns string&lt;br /&gt;
  vectororthobasis(str) - returns string&lt;br /&gt;
  vectorscale(str, float) - returns string&lt;br /&gt;
  vectorsub(str, str) - returns string&lt;br /&gt;
  worldx(float, float) - returns float&lt;br /&gt;
  worldy(float, float) - returns float&lt;br /&gt;
  wraptext(int, str, str) - returns object&lt;br /&gt;
  wraptext2(int, float, str, str) - returns object&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Objects=&lt;br /&gt;
&amp;lt;pre&amp;gt;TGraalVar:&lt;br /&gt;
  initialized - boolean [R]&lt;br /&gt;
  ispaused - boolean - suspends the script if set to paused&lt;br /&gt;
  joinedclasses - object&lt;br /&gt;
  maxlooplimit - integer - sets the maxmimum number of loop iterations, default 10000; the allowed range for this can vary from server to server&lt;br /&gt;
  name - string&lt;br /&gt;
  scripterrors - object [R] - gives the list of script errors which were reported for this object&lt;br /&gt;
  scriptlogmissingfunctions - boolean&lt;br /&gt;
  timeout - float&lt;br /&gt;
  addarray(obj) - adds another array to this variable&lt;br /&gt;
  addarraymember(str) - returns object - adds an array member with a name and returns the new array member&lt;br /&gt;
  addnamedstring(str, str) - returns object&lt;br /&gt;
  cancelevents(str) - removes all previously scheduled events (scheduleevent) of the specified event name&lt;br /&gt;
  catchevent(str, str, str) - adds an event handler for the specified object and event, third parameter is the function which receives the event (first parameter of the event will be the object for which the event occured)&lt;br /&gt;
  clearemptyvars() - removes empty subvariables from memory&lt;br /&gt;
  clearvars() - clears all dynamic variables&lt;br /&gt;
  copyfrom(obj) - copies all variables and array values from another object, doesn't work for protected variables like players though&lt;br /&gt;
  getarraymember(str) - returns object - searches for an array member by name&lt;br /&gt;
  getdynamicvarnames() - returns object - gets the names of all dynamic (not built-in) subvariables of this object&lt;br /&gt;
  geteditvarnames() - returns object - gets the names of all dynamic variables which can be modified&lt;br /&gt;
  getfunctions() - returns object - gets the names of all functions of the object as array, also each entry has subvariables which give more information about the function (&amp;quot;parameters&amp;quot;, &amp;quot;description&amp;quot;, &amp;quot;scope&amp;quot;)&lt;br /&gt;
  getstaticvarnames() - returns object - gets the names of all static (built-in) subvariables of this object&lt;br /&gt;
  getvarnames() - returns object - gets the names of all subvariables of this object&lt;br /&gt;
  hasfunction(str) - returns boolean - checks if the object has a function of the specified name (also checks if it can be called by the current script object)&lt;br /&gt;
  ignoreevent(str, str) - lets the object ignore an event (second parameter) of the specified object name&lt;br /&gt;
  ignoreevents(str) - lets the object ignore all previously catched events of the specified object name&lt;br /&gt;
  insertarray(int, obj) - inserts an array at the specified index&lt;br /&gt;
  isinclass(str) - returns boolean - checks if the object has joined the specified class&lt;br /&gt;
  join(str) - lets the object join a class and inherit all functions and event handlers of that class&lt;br /&gt;
  leave(str) - leaves a previously joined class&lt;br /&gt;
  loadfolder(str, int) - loads the content of a folder into the variable, you must specify the folder name and pattern (e.g. &amp;quot;levels/bodies/*.png&amp;quot;) and if it should be recursive&lt;br /&gt;
  loadini(str) - loads an .ini file into the variable, you can access variables by obj.inisection.varname&lt;br /&gt;
  loadlines(str) - loads a file and adds it line by line to the variable (as array)&lt;br /&gt;
  loadstring(str) - loads the content of a file into the variable&lt;br /&gt;
  loadvars(str) - loads the variables from a file where each line has the format varname=value&lt;br /&gt;
  loadvarsfromarray(obj) - loads the variables from a string list of the format varname=value&lt;br /&gt;
  loadxml(str)&lt;br /&gt;
  loadxmlfromstring(str)&lt;br /&gt;
  objecttype() - returns string - returns the object type, which can be TGraalVar, TProjectile etc.&lt;br /&gt;
  savelines(str, int) - saves the array line by line into a file, the second parameter is the save mode (0 - overwrite, 1 - append)&lt;br /&gt;
  savestring(str, int) - saves the value as string into a file, the second parameter is the save mode (0 - overwrite, 1 - append)&lt;br /&gt;
  savevars(str, int) - saves the subvars in the format varname=value into a file, the second parameter is the save mode (0 - overwrite, 1 - append)&lt;br /&gt;
  savevarstoarray(bool) - returns object - saves the subvars in the format varname=value into an array, you must specify if it should be sorted&lt;br /&gt;
  savexml(str, int)&lt;br /&gt;
  savexmltostring() - returns string&lt;br /&gt;
  scheduleevent(float, str, params...) - returns object - invokes an event (onEventname) after the specified delay (in seconds), second parameter is the event name, followed by the parameters&lt;br /&gt;
  settimer(float) - invokes an onTimeout event after the specified time, similar to 'timeout=value'&lt;br /&gt;
  sortascending() - sorts the array in ascending order (smallest value first)&lt;br /&gt;
  sortbyvalue(str, str, bool) - sorts an array, specify the variable of the array members which is compared, also the variable type and if it should be sorted ascending; variable type can be &amp;quot;string&amp;quot;, otherwise it is sorted by floating point value&lt;br /&gt;
  sortdescending() - sorts the array in descending order (highest value first)&lt;br /&gt;
  subarray2(int, int, int, int) - returns object - extracts a two-dimensional array, specify startpos1, length1, startpos2, length2&lt;br /&gt;
  timershow() - lets an npc show the current timeout variable, deprecated&lt;br /&gt;
  trigger(str, params...) - invokes an event on the object (onEventname) with the specified event name and parameters, doesn't interrupt the current script&lt;br /&gt;
&lt;br /&gt;
  ActionMap (TGraalVar):&lt;br /&gt;
    bind(str, str, str)&lt;br /&gt;
    getbinding(str) - returns string&lt;br /&gt;
    getcommand(str, str) - returns string&lt;br /&gt;
    load() - returns boolean&lt;br /&gt;
    pop()&lt;br /&gt;
    push()&lt;br /&gt;
    save()&lt;br /&gt;
    unbind(str, str)&lt;br /&gt;
&lt;br /&gt;
  DTSAniThread (TGraalVar):&lt;br /&gt;
    aniindex - integer [R]&lt;br /&gt;
    atend - boolean [R]&lt;br /&gt;
    attack - boolean&lt;br /&gt;
    endpos - float&lt;br /&gt;
    hold - boolean&lt;br /&gt;
    position - float&lt;br /&gt;
    sequence - string&lt;br /&gt;
    startpos - float&lt;br /&gt;
    state - string&lt;br /&gt;
    timescale - float&lt;br /&gt;
    transtitiontime - float&lt;br /&gt;
    isintransition() - returns boolean&lt;br /&gt;
    play()&lt;br /&gt;
&lt;br /&gt;
  GameMovementInterpolate (TGraalVar):&lt;br /&gt;
    rigid - object [R]&lt;br /&gt;
    applyimpulse(str, str)&lt;br /&gt;
&lt;br /&gt;
    GameMovementRigid (GameMovementInterpolate):&lt;br /&gt;
      addrigidmove(str, str) - adds torque and force vector&lt;br /&gt;
&lt;br /&gt;
  GameMovementList (TGraalVar):&lt;br /&gt;
    finishmoves()&lt;br /&gt;
    move3d(str, float, int)&lt;br /&gt;
&lt;br /&gt;
  GameShape (TGraalVar):&lt;br /&gt;
    pixelshader - string&lt;br /&gt;
    vertexshader - string&lt;br /&gt;
&lt;br /&gt;
    GameShapeDIF (GameShape):&lt;br /&gt;
      activatelight(str)&lt;br /&gt;
      deactivatelight(str)&lt;br /&gt;
&lt;br /&gt;
    GameShapeDTS (GameShape):&lt;br /&gt;
      materiallist - object [R]&lt;br /&gt;
      materials - object [R]&lt;br /&gt;
      forceanimations() - starts to animate the object to make sure the animations are the wished start position&lt;br /&gt;
      getanimation(int) - returns object&lt;br /&gt;
      listnodes() - returns object&lt;br /&gt;
      pauseanimation(int)&lt;br /&gt;
      playanimation(int, str, int) - returns object - specify animation slot, animation name and flags (1 - hold, 2 - atend, 4 - attackanimation)&lt;br /&gt;
      playanimation2(int, str, int, float, float, float, float) - returns object - specify animation slot, animation name, flags, startpos, endpos, timescale, transitiontime&lt;br /&gt;
      stopanimation(int)&lt;br /&gt;
&lt;br /&gt;
    GameShapeFT (GameShape):&lt;br /&gt;
      levels - integer&lt;br /&gt;
      seed - integer&lt;br /&gt;
&lt;br /&gt;
  MovieClip (TGraalVar):&lt;br /&gt;
    _level0 - object [R]&lt;br /&gt;
    _parent - object [R]&lt;br /&gt;
    _root - object [R]&lt;br /&gt;
    _visible - boolean&lt;br /&gt;
    _x - float&lt;br /&gt;
    _xmouse - float [R]&lt;br /&gt;
    _y - float&lt;br /&gt;
    _ymouse - float [R]&lt;br /&gt;
    alpha - float&lt;br /&gt;
    blue - float&lt;br /&gt;
    frame - integer&lt;br /&gt;
    framecount - integer [R]&lt;br /&gt;
    green - float&lt;br /&gt;
    height - float [R]&lt;br /&gt;
    layernames - object [R]&lt;br /&gt;
    looping - boolean&lt;br /&gt;
    math - object [R]&lt;br /&gt;
    objectname - string&lt;br /&gt;
    objectnames - object [R]&lt;br /&gt;
    playing - boolean&lt;br /&gt;
    red - float&lt;br /&gt;
    width - float [R]&lt;br /&gt;
    attachmovie(params...) - returns object - parameters are the movie clip to copy, the name of the new clip, and the layer&lt;br /&gt;
    createemptymovieclip(str, int) - returns object - parameters are the the name of the new clip and the layer&lt;br /&gt;
    duplicatemovieclip(params...) - returns object&lt;br /&gt;
    getbytesloaded() - returns integer&lt;br /&gt;
    getbytestotal() - returns integer&lt;br /&gt;
    getcolor() - returns string&lt;br /&gt;
    getdepth() - returns integer&lt;br /&gt;
    getlayer(str) - returns object&lt;br /&gt;
    getproperty(int) - returns string&lt;br /&gt;
    gotoandplay(params...) - specify the frame name or frame number&lt;br /&gt;
    gotoandstop(params...) - specify the frame name or frame number&lt;br /&gt;
    hittest(params...) - returns boolean&lt;br /&gt;
    nextframe()&lt;br /&gt;
    play()&lt;br /&gt;
    prevframe()&lt;br /&gt;
    removelayer(str)&lt;br /&gt;
    removemovieclip()&lt;br /&gt;
    setcolor(str)&lt;br /&gt;
    setproperty(int, str)&lt;br /&gt;
    stop()&lt;br /&gt;
    swapdepths(str)&lt;br /&gt;
    unloadmovie() - same as removeMovieClip()&lt;br /&gt;
&lt;br /&gt;
  MRandomGenerator (TGraalVar):&lt;br /&gt;
    seed - integer&lt;br /&gt;
    destroy()&lt;br /&gt;
    randfloat() - returns float - a random floating point number between 0 and 1&lt;br /&gt;
    randint() - returns integer - a random integer number between 0 and 2147483647, use the modulus operator to generate a value in a smaller range (e.g. obj.randInt()%10 to get a value between 0 and 9)&lt;br /&gt;
&lt;br /&gt;
    MRandomLCG (MRandomGenerator):&lt;br /&gt;
&lt;br /&gt;
    MRandomR250 (MRandomGenerator):&lt;br /&gt;
&lt;br /&gt;
  SimObject (TGraalVar):&lt;br /&gt;
&lt;br /&gt;
    SceneObject (SimObject):&lt;br /&gt;
      eulerrotation - string&lt;br /&gt;
      forwardvector - string&lt;br /&gt;
      objectbox - string [R]&lt;br /&gt;
      position - string&lt;br /&gt;
      renderposition - string&lt;br /&gt;
      rightvector - string&lt;br /&gt;
      rotation - string&lt;br /&gt;
      scale - string&lt;br /&gt;
      scaledobjectbox - string [R]&lt;br /&gt;
      transform - string&lt;br /&gt;
      upvector - string&lt;br /&gt;
      worldbox - string [R]&lt;br /&gt;
      worldboxcenter - string [R]&lt;br /&gt;
      x - float&lt;br /&gt;
      y - float&lt;br /&gt;
      z - float&lt;br /&gt;
      getforwardvector() - returns string&lt;br /&gt;
      getobjectbox() - returns string&lt;br /&gt;
      getposition() - returns string&lt;br /&gt;
      getrightvector() - returns string&lt;br /&gt;
      getscale() - returns string&lt;br /&gt;
      gettransform() - returns string&lt;br /&gt;
      getupvector() - returns string&lt;br /&gt;
      getworldbox() - returns string&lt;br /&gt;
      getworldboxcenter() - returns string&lt;br /&gt;
      light()&lt;br /&gt;
      setforwardvector(str)&lt;br /&gt;
      setposition(str)&lt;br /&gt;
      setrightvector(str)&lt;br /&gt;
      setscale(str)&lt;br /&gt;
      settransform(str)&lt;br /&gt;
      setupvector(str)&lt;br /&gt;
&lt;br /&gt;
      fxSunLight (SceneObject):&lt;br /&gt;
        animazimuth - boolean&lt;br /&gt;
        animbrightness - boolean&lt;br /&gt;
        animcolour - boolean&lt;br /&gt;
        animelevation - boolean&lt;br /&gt;
        animrotation - boolean&lt;br /&gt;
        animsize - boolean&lt;br /&gt;
        azimuthkeys - string&lt;br /&gt;
        azimuthtime - float&lt;br /&gt;
        blendmode - integer&lt;br /&gt;
        bluekeys - string&lt;br /&gt;
        brightness - float&lt;br /&gt;
        brightnesskeys - string&lt;br /&gt;
        brightnesstime - float&lt;br /&gt;
        colour - string&lt;br /&gt;
        colourtime - float&lt;br /&gt;
        elevationkeys - string&lt;br /&gt;
        elevationtime - float&lt;br /&gt;
        enable - boolean&lt;br /&gt;
        fadetime - float&lt;br /&gt;
        flaresize - float&lt;br /&gt;
        flaretp - boolean&lt;br /&gt;
        greenkeys - string&lt;br /&gt;
        lerpazimuth - boolean&lt;br /&gt;
        lerpbrightness - boolean&lt;br /&gt;
        lerpcolour - boolean&lt;br /&gt;
        lerpelevation - boolean&lt;br /&gt;
        lerprotation - boolean&lt;br /&gt;
        lerpsize - boolean&lt;br /&gt;
        linkflaresize - boolean&lt;br /&gt;
        localflarebitmap - string&lt;br /&gt;
        maxazimuth - float&lt;br /&gt;
        maxbrightness - float&lt;br /&gt;
        maxcolour - string&lt;br /&gt;
        maxelevation - float&lt;br /&gt;
        maxrotation - float&lt;br /&gt;
        maxsize - float&lt;br /&gt;
        minazimuth - float&lt;br /&gt;
        minbrightness - float&lt;br /&gt;
        mincolour - string&lt;br /&gt;
        minelevation - float&lt;br /&gt;
        minrotation - float&lt;br /&gt;
        minsize - float&lt;br /&gt;
        redkeys - string&lt;br /&gt;
        remoteflarebitmap - string&lt;br /&gt;
        rotationkeys - string&lt;br /&gt;
        rotationtime - float&lt;br /&gt;
        singlecolourkeys - boolean&lt;br /&gt;
        sizekeys - string&lt;br /&gt;
        sizetime - float&lt;br /&gt;
        sunazimuth - float&lt;br /&gt;
        sunelevation - float&lt;br /&gt;
        reset()&lt;br /&gt;
&lt;br /&gt;
      GameObject (SceneObject):&lt;br /&gt;
        alpha - float&lt;br /&gt;
        attachedtoobject - object&lt;br /&gt;
        attrobjects - object [R]&lt;br /&gt;
        chat - string&lt;br /&gt;
        collision - boolean&lt;br /&gt;
        iseditorobject - boolean&lt;br /&gt;
        liquidheight - float [R]&lt;br /&gt;
        liquidtype - string [R]&lt;br /&gt;
        movetype - string&lt;br /&gt;
        nick - string - same as nickname&lt;br /&gt;
        nickcolor - string&lt;br /&gt;
        nickname - string&lt;br /&gt;
        position - string&lt;br /&gt;
        scaledshapebox - string [R]&lt;br /&gt;
        shadow - boolean&lt;br /&gt;
        shape - string&lt;br /&gt;
        shapebox - string [R]&lt;br /&gt;
        showterrain - boolean&lt;br /&gt;
        skin - string&lt;br /&gt;
        solid - boolean&lt;br /&gt;
        transform - string&lt;br /&gt;
        velocity - string&lt;br /&gt;
        watercoverage - float [R]&lt;br /&gt;
        checkcollision(str, str) - returns object&lt;br /&gt;
        checkcollisionbybox(str, str, str) - returns object&lt;br /&gt;
        clippolygons(str) - returns object&lt;br /&gt;
        findimg(int) - returns object&lt;br /&gt;
        getcontrollingclient() - returns object&lt;br /&gt;
        getcontrollingobject() - returns object&lt;br /&gt;
        getdropz(str) - returns float&lt;br /&gt;
        getinteriorobject() - returns object&lt;br /&gt;
        getmountedobject(int) - returns object&lt;br /&gt;
        getmountedobjectcount() - returns integer&lt;br /&gt;
        getmountedobjectnode(int) - returns integer&lt;br /&gt;
        getmountnodeobject(int) - returns object&lt;br /&gt;
        getmountposition(int) - returns string&lt;br /&gt;
        getmounttransform(int) - returns string&lt;br /&gt;
        getnodeposition(str) - returns string&lt;br /&gt;
        getnodetransform(str) - returns string&lt;br /&gt;
        getobjectmount() - returns object&lt;br /&gt;
        hideimg(int)&lt;br /&gt;
        hideimgs(int, int)&lt;br /&gt;
        isdrawn() - returns boolean&lt;br /&gt;
        isininterior() - returns boolean&lt;br /&gt;
        ismounted() - returns boolean&lt;br /&gt;
        mountobject(obj, int) - returns boolean&lt;br /&gt;
        setdirection(str)&lt;br /&gt;
        unmount()&lt;br /&gt;
        unmountobject(obj) - returns boolean&lt;br /&gt;
&lt;br /&gt;
        Camera (GameObject):&lt;br /&gt;
          cameramode - string&lt;br /&gt;
          eulerrotation - string&lt;br /&gt;
          followattachedobject - object&lt;br /&gt;
          lookatposition - string&lt;br /&gt;
          lookvector - string&lt;br /&gt;
          updateposition()&lt;br /&gt;
&lt;br /&gt;
        DynamicShapeReplicator (GameObject):&lt;br /&gt;
          aligntoterrain - boolean&lt;br /&gt;
          allowedterrainslope - integer&lt;br /&gt;
          allowoninteriors - boolean&lt;br /&gt;
          allowonstatics - boolean&lt;br /&gt;
          allowonterrain - boolean&lt;br /&gt;
          allowonwater - boolean&lt;br /&gt;
          allowwatersurface - boolean&lt;br /&gt;
          boxmax - string&lt;br /&gt;
          boxmin - string&lt;br /&gt;
          hidereplications - boolean&lt;br /&gt;
          maxgridobjects - integer&lt;br /&gt;
          mingridobjects - integer&lt;br /&gt;
          offsetz - float&lt;br /&gt;
          radius - integer&lt;br /&gt;
          seed - integer&lt;br /&gt;
          shapefiles - string&lt;br /&gt;
          shaperotatemax - string&lt;br /&gt;
          shaperotatemin - string&lt;br /&gt;
          shapescalemax - string&lt;br /&gt;
          shapescalemin - string&lt;br /&gt;
          surfaceexclusionmode - boolean&lt;br /&gt;
          surfacetype - integer&lt;br /&gt;
          terrainalignment - string&lt;br /&gt;
&lt;br /&gt;
          DynamicGrass (DynamicShapeReplicator):&lt;br /&gt;
&lt;br /&gt;
          DynamicGrassReplicator (DynamicShapeReplicator):&lt;br /&gt;
&lt;br /&gt;
      Sky (SceneObject):&lt;br /&gt;
        cloudheight1 - float&lt;br /&gt;
        cloudheight2 - float&lt;br /&gt;
        cloudheight3 - float&lt;br /&gt;
        cloudspeed1 - float&lt;br /&gt;
        cloudspeed2 - float&lt;br /&gt;
        cloudspeed3 - float&lt;br /&gt;
        fogcolor - string&lt;br /&gt;
        fogstorm1 - boolean&lt;br /&gt;
        fogstorm2 - boolean&lt;br /&gt;
        fogstorm3 - boolean&lt;br /&gt;
        fogvolume1 - string&lt;br /&gt;
        fogvolume2 - string&lt;br /&gt;
        fogvolume3 - string&lt;br /&gt;
        fogvolumecolor1 - string&lt;br /&gt;
        fogvolumecolor2 - string&lt;br /&gt;
        fogvolumecolor3 - string&lt;br /&gt;
        materiallist - string&lt;br /&gt;
        norenderbans - boolean&lt;br /&gt;
        renderbottomtexture - boolean&lt;br /&gt;
        skyfadetime - float&lt;br /&gt;
        skysolidcolor - string&lt;br /&gt;
        useskytextures - boolean&lt;br /&gt;
        windeffectprecipitation - boolean&lt;br /&gt;
        windvelocity - string&lt;br /&gt;
        getwindowvelocity() - returns string&lt;br /&gt;
        realfog(bool, float, float, float) - specify if it should show, and max, min and speed values&lt;br /&gt;
        stormclouds(bool, float) - specify if it should show, and the duration&lt;br /&gt;
        stormcloudsshow(bool)&lt;br /&gt;
        stormfog(float, float) - percent and duration of the fog&lt;br /&gt;
        stormfogshow(bool)&lt;br /&gt;
&lt;br /&gt;
      TerrainBlock (SceneObject):&lt;br /&gt;
        repeatterrain - boolean&lt;br /&gt;
        squaresize - integer&lt;br /&gt;
        terrainfile - string&lt;br /&gt;
&lt;br /&gt;
      WaterBlock (SceneObject):&lt;br /&gt;
        density - float&lt;br /&gt;
        depthgradient - float&lt;br /&gt;
        distortgridscale - float&lt;br /&gt;
        distortmag - float&lt;br /&gt;
        distorttime - float&lt;br /&gt;
        envmapintensity - float&lt;br /&gt;
        envmapovertexture - string&lt;br /&gt;
        envmapundertexture - string&lt;br /&gt;
        flowangle - float&lt;br /&gt;
        flowrate - float&lt;br /&gt;
        ignoreterrain - boolean&lt;br /&gt;
        liquidtype - string&lt;br /&gt;
        maxalpha - float&lt;br /&gt;
        minalpha - float&lt;br /&gt;
        removewetedges - boolean&lt;br /&gt;
        shoredepth - float&lt;br /&gt;
        shoretexture - string&lt;br /&gt;
        specularcolor - string&lt;br /&gt;
        specularmasktex - string&lt;br /&gt;
        specularpower - float&lt;br /&gt;
        submergetexture0 - string&lt;br /&gt;
        submergetexture1 - string&lt;br /&gt;
        surfaceopacity - float&lt;br /&gt;
        surfaceparallax - float&lt;br /&gt;
        surfacetexture - string&lt;br /&gt;
        tessshore - float&lt;br /&gt;
        tesssurface - float&lt;br /&gt;
        usedepthmask - boolean&lt;br /&gt;
        viscosity - float&lt;br /&gt;
        wavemagnitude - float&lt;br /&gt;
&lt;br /&gt;
    SimGroup (SimObject):&lt;br /&gt;
      addcontrol(obj)&lt;br /&gt;
&lt;br /&gt;
      GameConnection (SimGroup):&lt;br /&gt;
        account - string [R]&lt;br /&gt;
        camera - object [R]&lt;br /&gt;
        communityname - string [R]&lt;br /&gt;
        isobserver - boolean [R]&lt;br /&gt;
        nick - string [R]&lt;br /&gt;
        objecttype() - returns string&lt;br /&gt;
        showprofile()&lt;br /&gt;
&lt;br /&gt;
    Sun (SimObject):&lt;br /&gt;
      ambient - string&lt;br /&gt;
      color - string&lt;br /&gt;
      direction - string&lt;br /&gt;
&lt;br /&gt;
  TDrawableObject (TGraalVar):&lt;br /&gt;
    layer - integer [R]&lt;br /&gt;
&lt;br /&gt;
    TBaddy (TDrawableObject):&lt;br /&gt;
      dir - integer&lt;br /&gt;
      headdir - integer&lt;br /&gt;
      mode - integer&lt;br /&gt;
      power - integer&lt;br /&gt;
      type - integer&lt;br /&gt;
      x - float&lt;br /&gt;
      y - float&lt;br /&gt;
&lt;br /&gt;
    TLevelObject (TDrawableObject):&lt;br /&gt;
      level - object [R]&lt;br /&gt;
      x - float&lt;br /&gt;
      y - float&lt;br /&gt;
      z - float&lt;br /&gt;
&lt;br /&gt;
      TExplosion (TLevelObject):&lt;br /&gt;
        dir - integer [R]&lt;br /&gt;
        power - integer [R]&lt;br /&gt;
        time - float [R]&lt;br /&gt;
&lt;br /&gt;
      TGaniObject (TLevelObject):&lt;br /&gt;
        alpha - float&lt;br /&gt;
        ani - object [R]&lt;br /&gt;
        aniparams - string [R]&lt;br /&gt;
        anistep - integer [R]&lt;br /&gt;
        attachedtoobject - object [R]&lt;br /&gt;
        attachid - integer [R]&lt;br /&gt;
        attachtype - integer [R]&lt;br /&gt;
        attr - object [R]&lt;br /&gt;
        blue - float&lt;br /&gt;
        body - string&lt;br /&gt;
        bodyimg - string&lt;br /&gt;
        colors - object [R]&lt;br /&gt;
        dir - integer&lt;br /&gt;
        gmap - object [R]&lt;br /&gt;
        green - float&lt;br /&gt;
        head - string&lt;br /&gt;
        headimg - string&lt;br /&gt;
        mode - integer - the object drawing mode (0 - add, 1 - transparent, 2 - subtract, 3 - daynight)&lt;br /&gt;
        red - float&lt;br /&gt;
        rotation - float&lt;br /&gt;
        shield - string&lt;br /&gt;
        sprite - integer&lt;br /&gt;
        stretchx - float&lt;br /&gt;
        stretchy - float&lt;br /&gt;
        sword - string&lt;br /&gt;
        zoom - float&lt;br /&gt;
        getimageforsprite(obj) - returns string&lt;br /&gt;
        getsprite(str) - returns object&lt;br /&gt;
        getspriteforspritepos(obj) - returns object&lt;br /&gt;
        setcoloreffect(float, float, float, float)&lt;br /&gt;
        seteffectmode(int)&lt;br /&gt;
&lt;br /&gt;
        TProjectile (TGaniObject):&lt;br /&gt;
          angle - float [R]&lt;br /&gt;
          fromplayer - object [R]&lt;br /&gt;
          horiz - boolean [R]&lt;br /&gt;
          params - object [R]&lt;br /&gt;
          speed - float [R]&lt;br /&gt;
          x - float [R]&lt;br /&gt;
          y - float [R]&lt;br /&gt;
          z - float [R]&lt;br /&gt;
          zspeed - float [R]&lt;br /&gt;
&lt;br /&gt;
        TServerHorse (TGaniObject):&lt;br /&gt;
          bombpower - integer&lt;br /&gt;
          bombs - integer&lt;br /&gt;
          bushes - integer&lt;br /&gt;
          dir - integer&lt;br /&gt;
          type - integer&lt;br /&gt;
&lt;br /&gt;
        TServerPlayer (TGaniObject):&lt;br /&gt;
          account - string [R]&lt;br /&gt;
          ap - integer&lt;br /&gt;
          attached - boolean [R]&lt;br /&gt;
          attachedtoobject - object&lt;br /&gt;
          bombs - integer&lt;br /&gt;
          chat - string&lt;br /&gt;
          communityname - string [R]&lt;br /&gt;
          darts - integer&lt;br /&gt;
          fullhearts - integer [R]&lt;br /&gt;
          glovepower - integer&lt;br /&gt;
          gralats - integer&lt;br /&gt;
          guild - string [R]&lt;br /&gt;
          headimg - string&lt;br /&gt;
          headset - integer&lt;br /&gt;
          hearts - float [R]&lt;br /&gt;
          horseimg - string [R]&lt;br /&gt;
          hp - float [R]&lt;br /&gt;
          id - integer [R]&lt;br /&gt;
          isadmin - boolean [R]&lt;br /&gt;
          isbuddy - boolean&lt;br /&gt;
          ischannel - boolean [R]&lt;br /&gt;
          ischannelopen - boolean [R]&lt;br /&gt;
          ischanneluser - boolean [R]&lt;br /&gt;
          isexternal - boolean [R]&lt;br /&gt;
          isfemale - boolean [R]&lt;br /&gt;
          isignored - boolean&lt;br /&gt;
          isignoring - boolean [R]&lt;br /&gt;
          isloggedin - boolean [R]&lt;br /&gt;
          ismale - boolean [R]&lt;br /&gt;
          ismuted - boolean [R]&lt;br /&gt;
          ismuting - boolean [R]&lt;br /&gt;
          language - string [R]&lt;br /&gt;
          languagedomain - string [R]&lt;br /&gt;
          mapicon - object [R] - of type TDrawingPanel, this is the icon that appears on the mini-map, usually updated by the playerlist script&lt;br /&gt;
          maxhp - integer [R]&lt;br /&gt;
          messagebubble - integer [R]&lt;br /&gt;
          mp - integer&lt;br /&gt;
          nick - string&lt;br /&gt;
          platform - string [R]&lt;br /&gt;
          playersindex - integer [R]&lt;br /&gt;
          rating - float [R]&lt;br /&gt;
          ratingd - float [R]&lt;br /&gt;
          rupees - integer - better use 'gralats'&lt;br /&gt;
          shieldimg - string - only there for compatibility with GS1, use just 'shield' instead&lt;br /&gt;
          shieldpower - integer [R]&lt;br /&gt;
          swordimg - string - only there for compatibility with GS1, use just 'sword' instead&lt;br /&gt;
          swordpower - integer [R]&lt;br /&gt;
          x - float&lt;br /&gt;
          y - float&lt;br /&gt;
          isguildpm() - returns boolean&lt;br /&gt;
          ismasspm() - returns boolean&lt;br /&gt;
          openexternalhistory() - returns boolean&lt;br /&gt;
          openexternalpm(bool) - returns boolean - as parameter specify 'true' if it should display the pm sent by the player, otherwise always open a blank PM window&lt;br /&gt;
          pmswaiting() - returns boolean&lt;br /&gt;
          showprofile()&lt;br /&gt;
&lt;br /&gt;
          TPlayer (TServerPlayer):&lt;br /&gt;
            ap - integer&lt;br /&gt;
            chat - string&lt;br /&gt;
            freezetime - float&lt;br /&gt;
            hearts - float&lt;br /&gt;
            horseimg - string&lt;br /&gt;
            hp - float&lt;br /&gt;
            hurt - boolean [R]&lt;br /&gt;
            hurtdx - float [R]&lt;br /&gt;
            hurtdy - float [R]&lt;br /&gt;
            hurted - boolean [R]&lt;br /&gt;
            hurtpower - float [R]&lt;br /&gt;
            isfemale - boolean [R]&lt;br /&gt;
            ismale - boolean [R]&lt;br /&gt;
            isobserver - boolean [R]&lt;br /&gt;
            letters - string&lt;br /&gt;
            map - boolean [R]&lt;br /&gt;
            nick - string [R]&lt;br /&gt;
            onhorse - boolean [R]&lt;br /&gt;
            online - boolean [R]&lt;br /&gt;
            paused - boolean [R]&lt;br /&gt;
            reading - boolean [R]&lt;br /&gt;
            shieldimg - string - same as 'shield', except that changing this also updates the shieldpower&lt;br /&gt;
            sprite - integer&lt;br /&gt;
            swimming - boolean [R]&lt;br /&gt;
            swordimg - string - same as 'sword', except that changing this also updates the swordpower&lt;br /&gt;
            weapon - object [R]&lt;br /&gt;
            weapons - object [R]&lt;br /&gt;
&lt;br /&gt;
          TServerNPC (TServerPlayer):&lt;br /&gt;
            actionplayer - integer [R]&lt;br /&gt;
            hearts - float&lt;br /&gt;
            height - float [R]&lt;br /&gt;
            horseimg - string&lt;br /&gt;
            hp - float&lt;br /&gt;
            hurtdx - float&lt;br /&gt;
            hurtdy - float&lt;br /&gt;
            image - string&lt;br /&gt;
            isblocking - boolean&lt;br /&gt;
            isblockingprojectiles - boolean&lt;br /&gt;
            layer - integer&lt;br /&gt;
            npcsindex - integer [R]&lt;br /&gt;
            peltwithblackstone - boolean [R]&lt;br /&gt;
            peltwithbush - boolean [R]&lt;br /&gt;
            peltwithnpc - boolean [R]&lt;br /&gt;
            peltwithsign - boolean [R]&lt;br /&gt;
            peltwithstone - boolean [R]&lt;br /&gt;
            peltwithvase - boolean [R]&lt;br /&gt;
            save - object [R]&lt;br /&gt;
            shieldpower - integer&lt;br /&gt;
            sprite - integer&lt;br /&gt;
            swordpower - integer&lt;br /&gt;
            visible - boolean&lt;br /&gt;
            width - float [R]&lt;br /&gt;
            x - float&lt;br /&gt;
            y - float&lt;br /&gt;
            blockagain()&lt;br /&gt;
            blockagainlocal()&lt;br /&gt;
            canbecarried()&lt;br /&gt;
            canbepulled()&lt;br /&gt;
            canbepushed()&lt;br /&gt;
            cannotbecarried()&lt;br /&gt;
            cannotbepulled()&lt;br /&gt;
            cannotbepushed()&lt;br /&gt;
            carryobject(str)&lt;br /&gt;
            changeimgcolors(int, float, float, float, float)&lt;br /&gt;
            changeimgmode(int, int)&lt;br /&gt;
            changeimgpart(int, int, int, int, int)&lt;br /&gt;
            changeimgvis(int, int)&lt;br /&gt;
            changeimgzoom(int, float)&lt;br /&gt;
            destroy()&lt;br /&gt;
            dontblock()&lt;br /&gt;
            dontblocklocal()&lt;br /&gt;
            drawaslight()&lt;br /&gt;
            drawoverplayer()&lt;br /&gt;
            drawunderplayer()&lt;br /&gt;
            findimg(int) - returns object&lt;br /&gt;
            hide()&lt;br /&gt;
            hideimg(int)&lt;br /&gt;
            hideimgs(int, int)&lt;br /&gt;
            hidelocal()&lt;br /&gt;
            hurt(int)&lt;br /&gt;
            lay(str)&lt;br /&gt;
            message(str)&lt;br /&gt;
            move(float, float, float, int)&lt;br /&gt;
            setbow(str)&lt;br /&gt;
            setcharani(str, str)&lt;br /&gt;
            setchargender(str)&lt;br /&gt;
            setimg(str)&lt;br /&gt;
            setimgpart(str, int, int, int, int)&lt;br /&gt;
            setshape(int, int, int)&lt;br /&gt;
            setshape2(int, int, obj)&lt;br /&gt;
            setzoomeffect(float)&lt;br /&gt;
            shootarrow(int)&lt;br /&gt;
            shootball()&lt;br /&gt;
            shootfireball(int)&lt;br /&gt;
            shootfireblast(int)&lt;br /&gt;
            shootnuke(int)&lt;br /&gt;
            show()&lt;br /&gt;
            showani(int, float, float, int, str) - returns object&lt;br /&gt;
            showani2(int, float, float, float, int, str) - returns object&lt;br /&gt;
            showcharacter()&lt;br /&gt;
            showimg(int, str, float, float) - returns object&lt;br /&gt;
            showimg2(int, str, float, float, float) - returns object&lt;br /&gt;
            showlocal()&lt;br /&gt;
            showpoly(int, obj) - returns object&lt;br /&gt;
            showpoly2(int, obj) - returns object&lt;br /&gt;
            showtext(int, float, float, str, str, str) - returns object&lt;br /&gt;
            showtext2(int, float, float, float, str, str, str) - returns object&lt;br /&gt;
            take(str)&lt;br /&gt;
            take2(int)&lt;br /&gt;
            takehorse(int)&lt;br /&gt;
            throwcarry()&lt;br /&gt;
            timereverywhere()&lt;br /&gt;
&lt;br /&gt;
            TServerWeapon (TServerNPC):&lt;br /&gt;
              isweapon - boolean [R]&lt;br /&gt;
&lt;br /&gt;
      TServerBomb (TLevelObject):&lt;br /&gt;
        power - integer&lt;br /&gt;
        time - float&lt;br /&gt;
&lt;br /&gt;
      TServerCarry (TLevelObject):&lt;br /&gt;
&lt;br /&gt;
      TServerChest (TLevelObject):&lt;br /&gt;
        isopen - boolean [R]&lt;br /&gt;
        item - string [R]&lt;br /&gt;
&lt;br /&gt;
      TServerExtra (TLevelObject):&lt;br /&gt;
        time - float [R]&lt;br /&gt;
        type - integer [R]&lt;br /&gt;
&lt;br /&gt;
      TServerFlying (TLevelObject):&lt;br /&gt;
        dir - integer [R]&lt;br /&gt;
        dx - float&lt;br /&gt;
        dy - float&lt;br /&gt;
        from - integer [R]&lt;br /&gt;
        type - integer [R]&lt;br /&gt;
&lt;br /&gt;
      TServerLeap (TLevelObject):&lt;br /&gt;
&lt;br /&gt;
      TServerSign (TLevelObject):&lt;br /&gt;
        text - string&lt;br /&gt;
&lt;br /&gt;
      TShowImg (TLevelObject):&lt;br /&gt;
        alpha - float&lt;br /&gt;
        ani - string&lt;br /&gt;
        attachnode - string&lt;br /&gt;
        attachoffset - string&lt;br /&gt;
        attachtoowner - boolean&lt;br /&gt;
        blue - float&lt;br /&gt;
        code - string - the old representation as 'font@style@text'&lt;br /&gt;
        dimension - integer&lt;br /&gt;
        dir - integer&lt;br /&gt;
        emitter - object [R]&lt;br /&gt;
        eulerrotation - string&lt;br /&gt;
        flashfile - string&lt;br /&gt;
        font - string&lt;br /&gt;
        green - float&lt;br /&gt;
        image - string&lt;br /&gt;
        imageindex - integer [R]&lt;br /&gt;
        is3dlight - boolean&lt;br /&gt;
        layer - integer&lt;br /&gt;
        mode - integer - the image drawing mode (0 - add, 1 - transparent, 2 - subtract, 3 - daynight)&lt;br /&gt;
        playerlook - boolean - if the animation should take it's head, body, sword, shield and attr[] from the owner (playerlook), set this to false if you want to set the images yourself by changing showimg.actor.head etc.&lt;br /&gt;
        polygon - object&lt;br /&gt;
        position - string&lt;br /&gt;
        red - float&lt;br /&gt;
        rotation - float&lt;br /&gt;
        shape - string&lt;br /&gt;
        shapeobject - object [R]&lt;br /&gt;
        spin - float&lt;br /&gt;
        stretchx - float&lt;br /&gt;
        stretchy - float&lt;br /&gt;
        style - string&lt;br /&gt;
        text - string&lt;br /&gt;
        x - float&lt;br /&gt;
        y - float&lt;br /&gt;
        z - float&lt;br /&gt;
        zoom - float&lt;br /&gt;
&lt;br /&gt;
  TDrawingPanel (TGraalVar):&lt;br /&gt;
    height - integer [R]&lt;br /&gt;
    isclear - boolean [R]&lt;br /&gt;
    parth - integer [R]&lt;br /&gt;
    partw - integer [R]&lt;br /&gt;
    partx - integer [R]&lt;br /&gt;
    party - integer [R]&lt;br /&gt;
    width - integer [R]&lt;br /&gt;
    clearall()&lt;br /&gt;
    clearrectangle(int, int, int, int) - x, y, width and height&lt;br /&gt;
    drawimage(int, int, str) - x, y, source image&lt;br /&gt;
    drawimagerectangle(int, int, str, int, int, int, int) - destination x and y, source image, source x,y,width and height&lt;br /&gt;
    drawimagestretched(int, int, int, int, str, int, int, int, int) - destination x,y,width and height, source image, source x,y,width and height&lt;br /&gt;
    saveimage(str)&lt;br /&gt;
&lt;br /&gt;
  Terraformer (TGraalVar):&lt;br /&gt;
    loadgrayscale(int, str) - returns boolean&lt;br /&gt;
    loadgreyscale(int, str) - returns boolean&lt;br /&gt;
    savegreyscale(int, str) - returns boolean&lt;br /&gt;
    setterrain(int) - returns boolean&lt;br /&gt;
&lt;br /&gt;
  TFrameDetail (TGraalVar):&lt;br /&gt;
    bordercolor - string&lt;br /&gt;
    borderenable - string&lt;br /&gt;
    bordermovable - string&lt;br /&gt;
    borderwidth - integer&lt;br /&gt;
    minextent - string&lt;br /&gt;
&lt;br /&gt;
  TGameObjectAttr (TGraalVar):&lt;br /&gt;
&lt;br /&gt;
  TGaniParam (TGraalVar):&lt;br /&gt;
&lt;br /&gt;
  TGraalAni (TGraalVar):&lt;br /&gt;
    continuous - boolean&lt;br /&gt;
    ganitype - string [R]&lt;br /&gt;
    loop - boolean&lt;br /&gt;
    movie - boolean&lt;br /&gt;
    setbackto - string&lt;br /&gt;
    singledirection - boolean&lt;br /&gt;
    addsprite(int) - returns object&lt;br /&gt;
    addstep() - returns object&lt;br /&gt;
    deletesprite(int)&lt;br /&gt;
    deletestep(int)&lt;br /&gt;
    getsprite(int) - returns object&lt;br /&gt;
    insertstep(int) - returns object&lt;br /&gt;
&lt;br /&gt;
  TGraalAniPart (TGraalVar):&lt;br /&gt;
    attr - integer&lt;br /&gt;
    dx - integer&lt;br /&gt;
    dy - integer&lt;br /&gt;
    param - integer&lt;br /&gt;
    sprite - object&lt;br /&gt;
&lt;br /&gt;
  TGraalAniSound (TGraalVar):&lt;br /&gt;
    delay - float&lt;br /&gt;
    dx - float&lt;br /&gt;
    dy - float&lt;br /&gt;
    sound - string&lt;br /&gt;
&lt;br /&gt;
  TGraalAniSprite (TGraalVar):&lt;br /&gt;
    alpha - float&lt;br /&gt;
    blue - float&lt;br /&gt;
    description - string&lt;br /&gt;
    green - float&lt;br /&gt;
    height - integer&lt;br /&gt;
    image - string&lt;br /&gt;
    imagetype - string [R]&lt;br /&gt;
    mode - integer&lt;br /&gt;
    red - float&lt;br /&gt;
    rotation - float&lt;br /&gt;
    spriteindex - integer&lt;br /&gt;
    stretchx - float&lt;br /&gt;
    stretchy - float&lt;br /&gt;
    width - integer&lt;br /&gt;
    x - integer&lt;br /&gt;
    y - integer&lt;br /&gt;
    zoom - float&lt;br /&gt;
    addattachment() - returns object&lt;br /&gt;
    deleteattachment(int)&lt;br /&gt;
    insertattachment(int) - returns object&lt;br /&gt;
&lt;br /&gt;
  TGraalAniStep (TGraalVar):&lt;br /&gt;
    delay - float&lt;br /&gt;
    addpos(int) - returns object&lt;br /&gt;
    deletepos(int, int)&lt;br /&gt;
    insertpos(int, int) - returns object&lt;br /&gt;
&lt;br /&gt;
  TGraalSpriteAttachment (TGraalVar):&lt;br /&gt;
    behind - boolean&lt;br /&gt;
    dx - integer&lt;br /&gt;
    dy - integer&lt;br /&gt;
    sprite - object&lt;br /&gt;
&lt;br /&gt;
  THTTPRequest (TGraalVar):&lt;br /&gt;
    address - string [R]&lt;br /&gt;
    contentlanguage - string [R]&lt;br /&gt;
    contentlength - integer [R]&lt;br /&gt;
    contenttype - string [R]&lt;br /&gt;
    downloadcomplete - boolean [R]&lt;br /&gt;
    file - string [R]&lt;br /&gt;
    fulldata - string [R]&lt;br /&gt;
    lastmodified - string [R]&lt;br /&gt;
    port - integer [R]&lt;br /&gt;
    returncode - integer [R]&lt;br /&gt;
    returnmessage - string [R]&lt;br /&gt;
    server - string [R]&lt;br /&gt;
    url - string [R]&lt;br /&gt;
&lt;br /&gt;
  TMovementRigid (TGraalVar):&lt;br /&gt;
    mass - float&lt;br /&gt;
&lt;br /&gt;
  TParticle (TGraalVar):&lt;br /&gt;
    angle - float&lt;br /&gt;
    lifetime - float&lt;br /&gt;
    movementvector - string&lt;br /&gt;
    sound - string&lt;br /&gt;
    speed - float&lt;br /&gt;
    zangle - float&lt;br /&gt;
&lt;br /&gt;
  TParticleEmitter (TGraalVar):&lt;br /&gt;
    attachposition - boolean&lt;br /&gt;
    autorotation - boolean&lt;br /&gt;
    checkbelowterrain - boolean&lt;br /&gt;
    clippingbox - string&lt;br /&gt;
    cliptoscreen - boolean&lt;br /&gt;
    continueafterdestroy - boolean&lt;br /&gt;
    currentparticlecount - integer [R]&lt;br /&gt;
    delaymax - float&lt;br /&gt;
    delaymin - float&lt;br /&gt;
    dropemitter - object [R]&lt;br /&gt;
    dropwateremitter - object [R]&lt;br /&gt;
    emissionoffset - string&lt;br /&gt;
    emitatterrainheight - boolean&lt;br /&gt;
    emitautomatically - boolean&lt;br /&gt;
    emittedparticles - integer [R]&lt;br /&gt;
    firstinfront - boolean&lt;br /&gt;
    isfrozen - boolean&lt;br /&gt;
    maxparticles - integer&lt;br /&gt;
    movementfactor - float&lt;br /&gt;
    nrofparticles - integer&lt;br /&gt;
    particle - object [R]&lt;br /&gt;
    particletypes - integer&lt;br /&gt;
    wraptoclippingbox - boolean&lt;br /&gt;
    addemitmodifier(str, float, float, str, str, float, float) - returns object&lt;br /&gt;
    addglobalmodifier(str, float, float, str, str, float, float) - returns object&lt;br /&gt;
    addlocalmodifier(str, float, float, str, str, float, float) - returns object&lt;br /&gt;
    advancetime(float)&lt;br /&gt;
    emit()&lt;br /&gt;
    emitat(str)&lt;br /&gt;
    removemodifiers()&lt;br /&gt;
    removeparticles()&lt;br /&gt;
&lt;br /&gt;
  TParticleModifier (TGraalVar):&lt;br /&gt;
    addmod(str, str, float, float)&lt;br /&gt;
&lt;br /&gt;
  TScriptFunction (TGraalVar):&lt;br /&gt;
&lt;br /&gt;
  TServerLevel (TGraalVar):&lt;br /&gt;
    compsdead - boolean [R]&lt;br /&gt;
    height - integer [R]&lt;br /&gt;
    isnopkzone - boolean [R]&lt;br /&gt;
    issparringzone - boolean [R]&lt;br /&gt;
    nopkzone - boolean [R] - same like 'isnopkzone'&lt;br /&gt;
    tilelayercount - integer&lt;br /&gt;
    width - integer [R]&lt;br /&gt;
    findareanpcs(float, float, float, float) - returns object - returns an array of all npcs at the specified rectangle (x,y,width,height)&lt;br /&gt;
    getmappartfile(float, float) - returns string&lt;br /&gt;
    hitcompu(int, int, float, float)&lt;br /&gt;
    putbomb(int, float, float)&lt;br /&gt;
    putcomp(str, float, float)&lt;br /&gt;
    putexplosion(int, float, float)&lt;br /&gt;
    putexplosion2(int, int, float, float)&lt;br /&gt;
    puthorse(str, float, float)&lt;br /&gt;
    putnewcomp(str, float, float, str, int)&lt;br /&gt;
    reflectarrow(int)&lt;br /&gt;
    removearrow(int)&lt;br /&gt;
    removebomb(int)&lt;br /&gt;
    removecompus()&lt;br /&gt;
    removeexplo(int)&lt;br /&gt;
    removehorse(int)&lt;br /&gt;
    removeitem(int)&lt;br /&gt;
    setz(int, int, int, int, float, float, float, float)&lt;br /&gt;
    shoot(float, float, float, float, float, float, str, str) - shoots a projectile with x,y,z,angle,zangle,strength,ani,aniparams&lt;br /&gt;
    testbomb(float, float) - returns integer&lt;br /&gt;
    testexplo(float, float) - returns integer&lt;br /&gt;
    testhorse(float, float) - returns integer&lt;br /&gt;
    testitem(float, float) - returns integer&lt;br /&gt;
    testnpc(float, float) - returns integer&lt;br /&gt;
    testsign(float, float) - returns integer&lt;br /&gt;
    tiletype(float, float) - returns integer&lt;br /&gt;
&lt;br /&gt;
  TServerLevelLink (TGraalVar):&lt;br /&gt;
    destlevel - string [R]&lt;br /&gt;
    destx - float [R]&lt;br /&gt;
    desty - float [R]&lt;br /&gt;
    height - float [R]&lt;br /&gt;
    width - float [R]&lt;br /&gt;
    x - float [R]&lt;br /&gt;
    y - float [R]&lt;br /&gt;
&lt;br /&gt;
  TShapeMaterial (TGraalVar):&lt;br /&gt;
    specularpower - integer&lt;br /&gt;
&lt;br /&gt;
  TShowImg_Values (TGraalVar):&lt;br /&gt;
    alpha - float&lt;br /&gt;
    blue - float&lt;br /&gt;
    green - float&lt;br /&gt;
    mode - integer - the image drawing mode (0 - add, 1 - transparent, 2 - subtract, 3 - daynight)&lt;br /&gt;
    red - float&lt;br /&gt;
    rotation - float&lt;br /&gt;
    spin - float&lt;br /&gt;
    stretchx - float&lt;br /&gt;
    stretchy - float&lt;br /&gt;
    zoom - float&lt;br /&gt;
&lt;br /&gt;
    TShowImg_Flash (TShowImg_Values):&lt;br /&gt;
      flash - object [R]&lt;br /&gt;
&lt;br /&gt;
    TShowImg_Gani (TShowImg_Values):&lt;br /&gt;
      actor - object [R]&lt;br /&gt;
&lt;br /&gt;
    TShowImg_Image (TShowImg_Values):&lt;br /&gt;
      height - float&lt;br /&gt;
      parth - integer&lt;br /&gt;
      partw - integer&lt;br /&gt;
      partx - integer&lt;br /&gt;
      party - integer&lt;br /&gt;
      width - float&lt;br /&gt;
&lt;br /&gt;
    TShowImg_Poly (TShowImg_Values):&lt;br /&gt;
      parth - integer&lt;br /&gt;
      partw - integer&lt;br /&gt;
      partx - integer&lt;br /&gt;
      party - integer&lt;br /&gt;
&lt;br /&gt;
    TShowImg_Shape (TShowImg_Values):&lt;br /&gt;
      lightcolor - string&lt;br /&gt;
      lightdirection - string&lt;br /&gt;
      shadowdirection - string&lt;br /&gt;
&lt;br /&gt;
    TShowImg_Text (TShowImg_Values):&lt;br /&gt;
      parth - integer&lt;br /&gt;
      partw - integer&lt;br /&gt;
      partx - integer&lt;br /&gt;
      party - integer&lt;br /&gt;
      shadowcolor - string&lt;br /&gt;
      shadowoffset - string&lt;br /&gt;
      textshadow - boolean&lt;br /&gt;
&lt;br /&gt;
  TStaticVar (TGraalVar):&lt;br /&gt;
    destroy()&lt;br /&gt;
&lt;br /&gt;
    Array (TStaticVar):&lt;br /&gt;
      initialize(params...)&lt;br /&gt;
&lt;br /&gt;
    Color (TStaticVar):&lt;br /&gt;
      initialize(obj)&lt;br /&gt;
      setrgb(int)&lt;br /&gt;
&lt;br /&gt;
    Date (TStaticVar):&lt;br /&gt;
      initialize(params...)&lt;br /&gt;
&lt;br /&gt;
    Math (TStaticVar):&lt;br /&gt;
      abs(float) - returns float&lt;br /&gt;
      floor(float) - returns integer&lt;br /&gt;
      random() - returns float&lt;br /&gt;
      sin(float) - returns float&lt;br /&gt;
      sqrt(float) - returns float&lt;br /&gt;
&lt;br /&gt;
    Sound (TStaticVar):&lt;br /&gt;
      initialize(params...)&lt;br /&gt;
&lt;br /&gt;
    String (TStaticVar):&lt;br /&gt;
      initialize(params...)&lt;br /&gt;
&lt;br /&gt;
  TTilesLayer (TGraalVar):&lt;br /&gt;
    alpha - float&lt;br /&gt;
    blue - float&lt;br /&gt;
    green - float&lt;br /&gt;
    layerindex - integer [R]&lt;br /&gt;
    offset - string&lt;br /&gt;
    red - float&lt;br /&gt;
    x - float&lt;br /&gt;
    y - float&lt;br /&gt;
    z - float&lt;br /&gt;
    updateboard(int, int, int, int)&lt;br /&gt;
&lt;br /&gt;
  TUpdatePackage (TGraalVar):&lt;br /&gt;
    accounts - object [R]&lt;br /&gt;
    description - string [R]&lt;br /&gt;
    downloadcomplete - boolean [R]&lt;br /&gt;
    downloadedsize - integer [R]&lt;br /&gt;
    filecount - integer [R]&lt;br /&gt;
    filedownloadedsize - integer [R]&lt;br /&gt;
    filename - string [R]&lt;br /&gt;
    filetotalsize - integer [R]&lt;br /&gt;
    isuninstalled - boolean [R]&lt;br /&gt;
    lastdownloadfile - string [R]&lt;br /&gt;
    localversion - float [R]&lt;br /&gt;
    mode - string [R]&lt;br /&gt;
    name - string [R]&lt;br /&gt;
    parent - object [R]&lt;br /&gt;
    platform - string [R]&lt;br /&gt;
    protectoverwrite - boolean [R]&lt;br /&gt;
    totalsize - integer [R]&lt;br /&gt;
    usechecksum - boolean [R]&lt;br /&gt;
    version - float [R]&lt;br /&gt;
    reinstall() - returns boolean&lt;br /&gt;
    uninstall() - returns boolean&lt;br /&gt;
    update() - returns boolean&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=GUI Objects=&lt;br /&gt;
GUI Objects are currently well documented starting here [[Creation/Dev/Script/Client/GuiControl]].&lt;br /&gt;
&lt;br /&gt;
==Global==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  $pref::audio::choosenvoicecodec - integer&lt;br /&gt;
  $pref::audio::microactivatebyvolume - boolean&lt;br /&gt;
  $pref::audio::microactivationlevel - integer&lt;br /&gt;
  $pref::audio::microinputdevice - integer&lt;br /&gt;
  $pref::audio::microon - boolean&lt;br /&gt;
  $pref::audio::microvolumefactor - integer&lt;br /&gt;
  $pref::audio::midivolume - integer&lt;br /&gt;
  $pref::audio::mp3volume - integer&lt;br /&gt;
  $pref::audio::radiovolume - integer&lt;br /&gt;
  $pref::audio::reversestereo - boolean&lt;br /&gt;
  $pref::audio::sfxvolume - integer&lt;br /&gt;
  $pref::audio::voicevolume - integer&lt;br /&gt;
  $pref::capture::allowbyscript - boolean [R]&lt;br /&gt;
  $pref::capture::area - string&lt;br /&gt;
  $pref::capture::audiobitrate - integer&lt;br /&gt;
  $pref::capture::disabledaynight - boolean&lt;br /&gt;
  $pref::capture::format - string&lt;br /&gt;
  $pref::capture::fps - integer&lt;br /&gt;
  $pref::capture::hideinterface - boolean&lt;br /&gt;
  $pref::capture::recordaudio - boolean&lt;br /&gt;
  $pref::capture::showmouse - boolean&lt;br /&gt;
  $pref::capture::size - string&lt;br /&gt;
  $pref::capture::videobitrate - integer&lt;br /&gt;
  $pref::graal::allowglobalpms - boolean&lt;br /&gt;
  $pref::graal::automapping - boolean&lt;br /&gt;
  $pref::graal::defaultfontname - string&lt;br /&gt;
  $pref::graal::defaultfontsize - integer&lt;br /&gt;
  $pref::graal::dontconnectlevels - boolean&lt;br /&gt;
  $pref::graal::dontloadlistheads - boolean&lt;br /&gt;
  $pref::graal::dontsavepasswords - boolean&lt;br /&gt;
  $pref::graal::dontsavepms - boolean&lt;br /&gt;
  $pref::graal::fixedport - boolean&lt;br /&gt;
  $pref::graal::fixedudpport - integer&lt;br /&gt;
  $pref::graal::language - string&lt;br /&gt;
  $pref::graal::limitnicknames - boolean&lt;br /&gt;
  $pref::graal::loadbuddylistfromserver - boolean&lt;br /&gt;
  $pref::graal::nicknamelimit - integer&lt;br /&gt;
  $pref::graal::nomassmessages - boolean&lt;br /&gt;
  $pref::graal::notoalls - boolean&lt;br /&gt;
  $pref::graal::noudp - boolean&lt;br /&gt;
  $pref::graal::showyourselfonbuddylists - boolean&lt;br /&gt;
  $pref::input::mousesensitivity - float&lt;br /&gt;
  $pref::interior::lockarrays - boolean&lt;br /&gt;
  $pref::video::defaultguistyle - string&lt;br /&gt;
  $pref::video::detailfactor - float&lt;br /&gt;
  $pref::video::fogdistance - float&lt;br /&gt;
  $pref::video::fullscreenmode - string&lt;br /&gt;
  $pref::video::resolution - integer&lt;br /&gt;
  $pref::video::screenshotformat - string&lt;br /&gt;
  $pref::video::visibledistance - float&lt;br /&gt;
  $pref::video::windowmode - string&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Fowlplay4</name></author>
	</entry>
	<entry>
		<id>https://graalonline.net/index.php?title=Creation/Dev/Script/Clientside_Functions&amp;diff=17962</id>
		<title>Creation/Dev/Script/Clientside Functions</title>
		<link rel="alternate" type="text/html" href="https://graalonline.net/index.php?title=Creation/Dev/Script/Clientside_Functions&amp;diff=17962"/>
		<updated>2011-02-28T22:33:24Z</updated>

		<summary type="html">&lt;p&gt;Fowlplay4: /* Objects */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Scripting Reference]]&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;2&amp;quot; width=&amp;quot;50%&amp;quot;&lt;br /&gt;
|[R]&lt;br /&gt;
| denotes it is read-only.&lt;br /&gt;
|-&lt;br /&gt;
|[3D]&lt;br /&gt;
| denotes it is a Graal3D function.&lt;br /&gt;
|-&lt;br /&gt;
|[opengl]&lt;br /&gt;
| denotes it is functional only in opengl mode.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Variables==&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;2&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
| '''Variable'''&lt;br /&gt;
|width=&amp;quot;100px&amp;quot;|'''Type'''&lt;br /&gt;
| '''Notes'''&lt;br /&gt;
|-&lt;br /&gt;
| allfeatures&lt;br /&gt;
| ''integer [R]''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| allplayerscount&lt;br /&gt;
| ''integer [R]''&lt;br /&gt;
| Returns the count of all players on your playerlist, including IRC bots.&lt;br /&gt;
|-&lt;br /&gt;
| allrenderobjecttypes&lt;br /&gt;
| ''integer [R]''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| allstats &lt;br /&gt;
| ''integer [R]''&lt;br /&gt;
| Used with showstats() in order to show all stats.&lt;br /&gt;
|-&lt;br /&gt;
| canspin&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| Returns true of false if the player has spin attack.&lt;br /&gt;
|-&lt;br /&gt;
| carriesblackstone&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| Returns whether the player is carrying a black stone.&lt;br /&gt;
|-&lt;br /&gt;
| carriesbush&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| Returns whether the player is carrying a bush.&lt;br /&gt;
|-&lt;br /&gt;
| carriesnpc&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| Returns whether the player is carrying an NPC&lt;br /&gt;
|-&lt;br /&gt;
| carriessign&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| Returns whether the player is carrying a sign.&lt;br /&gt;
|-&lt;br /&gt;
| carriesstone&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| Returns whether the player is carrying a stone.&lt;br /&gt;
|-&lt;br /&gt;
| carriesvase&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| Returns whether the player is carrying a vase.&lt;br /&gt;
|-&lt;br /&gt;
| downloadfile&lt;br /&gt;
| ''string [R]''&lt;br /&gt;
| Returns the currently downloaded file.&lt;br /&gt;
|-&lt;br /&gt;
| downloadpos&lt;br /&gt;
| ''integer [R]''&lt;br /&gt;
| Returns the position of the currently downloaded file.&lt;br /&gt;
|-&lt;br /&gt;
| downloadsize&lt;br /&gt;
| ''integer [R]''&lt;br /&gt;
| Returns the size of the currently downloaded file.&lt;br /&gt;
|-&lt;br /&gt;
| editingmission&lt;br /&gt;
| ''boolean''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| emoticonchar&lt;br /&gt;
| ''string [R]''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| focusx&lt;br /&gt;
| ''float [R]''&lt;br /&gt;
| Position of the camera in tile units.&lt;br /&gt;
|-&lt;br /&gt;
| focusy&lt;br /&gt;
| ''float [R]''&lt;br /&gt;
| Position of the camera in tile units.&lt;br /&gt;
|-&lt;br /&gt;
| ghostsnear&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| If a ghost(observer) is in the same level as the player.&lt;br /&gt;
|-&lt;br /&gt;
| graalplugincookie&lt;br /&gt;
| ''string [R]''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| graalversion&lt;br /&gt;
| ''float [R]''&lt;br /&gt;
| Version of Graal the player is using.&lt;br /&gt;
|-&lt;br /&gt;
| gravity&lt;br /&gt;
| ''float''&lt;br /&gt;
| The gravity value that effects how fast projectiles fall. It universally effects all projectiles.&lt;br /&gt;
|-&lt;br /&gt;
| installedlanguages&lt;br /&gt;
| ''string [R]''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| isapplicationactive&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| Is Graal window active?&lt;br /&gt;
|-&lt;br /&gt;
| iscarrying&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| Returns true of false if the player is carrying something.&lt;br /&gt;
|-&lt;br /&gt;
| isfocused&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| isgraal3d&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| isgraalplugin&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| isleader&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| Player was the first to enter the level.&lt;br /&gt;
|-&lt;br /&gt;
| isonmap&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| Player is on a map.&lt;br /&gt;
|-&lt;br /&gt;
| isopengl&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| Graal is in opengl mode.&lt;br /&gt;
|-&lt;br /&gt;
| isrecordingvideo&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| Player is currently recording(alt+6) Graal.&lt;br /&gt;
|-&lt;br /&gt;
| jpegquality&lt;br /&gt;
| ''integer''&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| isgraalplugin&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| lastdownloadfile&lt;br /&gt;
| ''string [R]''&lt;br /&gt;
| The last file downloaded.&lt;br /&gt;
|-&lt;br /&gt;
| leftmousebutton&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| If the left mouse button is pressed.&lt;br /&gt;
|-&lt;br /&gt;
| leftmousebuttonglobal&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| If the left mouse button is pressed. Returns whether mouse is in focus of GUIs or not.&lt;br /&gt;
|-&lt;br /&gt;
| levelorgx&lt;br /&gt;
| ''float [R]''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| levelorgy&lt;br /&gt;
| ''float [R]''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| lighteffectsenabled&lt;br /&gt;
| ''boolean''&lt;br /&gt;
| Whether the player has their lights enabled via options.&lt;br /&gt;
|-&lt;br /&gt;
| middlemousebutton&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| If the middle mouse button is pressed&lt;br /&gt;
|-&lt;br /&gt;
| middlemousebuttonglobal&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| If the middle mouse button is pressed. Returns whether mouse is in focus of GUIs or not.&lt;br /&gt;
|-&lt;br /&gt;
| mousebuttons &lt;br /&gt;
| ''integer [R]''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| mousebuttonsglobal&lt;br /&gt;
| ''integer [R]''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| mousepitch&lt;br /&gt;
| ''float [R] [3D]''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| mousescreenx &lt;br /&gt;
| ''integer''&lt;br /&gt;
| Position of the mouse in the Graal screen, in pixel units on the x-axis.&lt;br /&gt;
|-&lt;br /&gt;
| mousescreeny &lt;br /&gt;
| ''integer''&lt;br /&gt;
| Position of the mouse in the Graal screen, in pixel units on the y-axis.&lt;br /&gt;
|-&lt;br /&gt;
| mousewheeldelta&lt;br /&gt;
| ''integer [R]''&lt;br /&gt;
| How much the mouse wheel has been scrolled.&lt;br /&gt;
|-&lt;br /&gt;
| mousex&lt;br /&gt;
| ''float''&lt;br /&gt;
| Position of the mouse in the level, in tile units, on the x-axis.&lt;br /&gt;
|-&lt;br /&gt;
| mousey&lt;br /&gt;
| ''float''&lt;br /&gt;
| Position of the mouse in the level, in tile units, on the y-axis&lt;br /&gt;
|-&lt;br /&gt;
| mouseyaw&lt;br /&gt;
| ''float [R] [3D]''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| musiclen &lt;br /&gt;
| ''integer [R]''&lt;br /&gt;
| Length of current playing '''MP3'''&lt;br /&gt;
|-&lt;br /&gt;
| musicpos&lt;br /&gt;
| ''integer [R]''&lt;br /&gt;
| Position of current playing '''MP3'''&lt;br /&gt;
|-&lt;br /&gt;
| particleeffectsenabled&lt;br /&gt;
| ''boolean''&lt;br /&gt;
| If player has particles enabled in their options.&lt;br /&gt;
|-&lt;br /&gt;
| rightmousebutton &lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| If the right mouse button is pressed&lt;br /&gt;
|-&lt;br /&gt;
| rightmousebuttonglobal &lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| If the right mouse button is pressed. Returns whether mouse is in focus of GUIs or not.&lt;br /&gt;
|-&lt;br /&gt;
| screenheight&lt;br /&gt;
| ''integer [R]''&lt;br /&gt;
| Height of the Graal screen in pixel units.&lt;br /&gt;
|-&lt;br /&gt;
| screenwidth&lt;br /&gt;
| ''integer [R]''&lt;br /&gt;
| Width of the Graal screen in pixel units.&lt;br /&gt;
|-&lt;br /&gt;
| scriptedcontrols &lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| scriptedplayerlist&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| Whether the player has the scripted playerlist enabled.&lt;br /&gt;
|-&lt;br /&gt;
| scriptlogwritetoreadonly&lt;br /&gt;
| ''boolean''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| selectedlistplayers&lt;br /&gt;
| ''object''&lt;br /&gt;
| An object of all players selected on the playerlist.&lt;br /&gt;
|-&lt;br /&gt;
| selectedsword &lt;br /&gt;
| ''integer''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| selectedweapon &lt;br /&gt;
| ''integer''&lt;br /&gt;
| Index of the currently selected weapon.&lt;br /&gt;
|-&lt;br /&gt;
| servername&lt;br /&gt;
| ''string [R]''&lt;br /&gt;
| Name of the server.&lt;br /&gt;
|-&lt;br /&gt;
| serverstartconnect &lt;br /&gt;
| ''string''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| serverstartparams &lt;br /&gt;
| ''string''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| shotbybaddy&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| If the player is shot by a baddy(default) arrow.&lt;br /&gt;
|-&lt;br /&gt;
| shotbyplayer&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| If the player is shot by another players arrow.&lt;br /&gt;
|-&lt;br /&gt;
| showterraingrid&lt;br /&gt;
| ''boolean''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| spritesimage&lt;br /&gt;
| ''string''&lt;br /&gt;
| Filename of the currently set sprite image.&lt;br /&gt;
|-&lt;br /&gt;
| statusimage&lt;br /&gt;
| ''string''&lt;br /&gt;
| Filename of the currently set state image.&lt;br /&gt;
|-&lt;br /&gt;
| timevar&lt;br /&gt;
| ''integer [R].''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| timevar2&lt;br /&gt;
| ''float [R]''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| timevar3&lt;br /&gt;
| ''float [R] [3D]''&lt;br /&gt;
| Synchronized time which works on both server and client-side, precision is milliseconds.&lt;br /&gt;
|-&lt;br /&gt;
| wasshooted&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| If the player is shot by a default arrow.&lt;br /&gt;
|-&lt;br /&gt;
| waterheight&lt;br /&gt;
| ''float''&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| weapons&lt;br /&gt;
| ''object [R]''&lt;br /&gt;
| all the players weapons, this includes login inherited weapons.&lt;br /&gt;
|-&lt;br /&gt;
| weaponsenabled&lt;br /&gt;
| ''boolean''&lt;br /&gt;
| If the players weapons are enabled via disableweapons()/enableweapons().&lt;br /&gt;
|-&lt;br /&gt;
| weathereffectsenabled&lt;br /&gt;
| ''boolean''&lt;br /&gt;
| If weather is enabled in the players options.&lt;br /&gt;
|-&lt;br /&gt;
| worldclockstopped&lt;br /&gt;
| ''boolean''&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| worldhour &lt;br /&gt;
| ''integer''&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| worldminute &lt;br /&gt;
| ''float''&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| worldminutesofday &lt;br /&gt;
| ''float''&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| worldrealsecondsperday &lt;br /&gt;
| ''float''&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Functions=&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;2&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
| '''Variable'''&lt;br /&gt;
|width=&amp;quot;100px&amp;quot;|'''Type'''&lt;br /&gt;
| '''Notes'''&lt;br /&gt;
|-&lt;br /&gt;
| addcontrol(object)&lt;br /&gt;
|&lt;br /&gt;
| adds 'object' to the parent control.&lt;br /&gt;
|-&lt;br /&gt;
| addmaterialmapping(string, string)&lt;br /&gt;
| [3D]&lt;br /&gt;
| returns boolean.&lt;br /&gt;
|-&lt;br /&gt;
| addtiledef(string image, string prefix, int format)&lt;br /&gt;
| &lt;br /&gt;
| Adds a tileset definition with the supplied tileset image, level prefix and tileset format (0=pics1, 1=new world, 5=terrain).&lt;br /&gt;
|-&lt;br /&gt;
| addtiledef2(string image, string prefix, int x, int y)&lt;br /&gt;
| &lt;br /&gt;
| Overlays an image on the tileset with the supplied tileset image and level prefix. Parameters 'x' and 'y' represent the x and y position on the tileset of where to place the new image.&lt;br /&gt;
|-&lt;br /&gt;
| aindexof(float, array)&lt;br /&gt;
| &lt;br /&gt;
| Returns integer - the position of 'float' in the array.&lt;br /&gt;
|-&lt;br /&gt;
| arccos(float)&lt;br /&gt;
| &lt;br /&gt;
| Returns float - the arc cosine of 'float'.&lt;br /&gt;
|-&lt;br /&gt;
| arcsin(float)&lt;br /&gt;
| &lt;br /&gt;
| Returns float - the arc sine of 'float'.&lt;br /&gt;
|-&lt;br /&gt;
| attachplayertoobj(integer1, integer2)&lt;br /&gt;
| &lt;br /&gt;
| Attaches the player to the object with the matching ID where integer1 is the object type (currently only NPCs - 0) and integer2 is the ID of the desired object.&lt;br /&gt;
|-&lt;br /&gt;
| base64decode(string)&lt;br /&gt;
| &lt;br /&gt;
| Returns string - Decodes a base64 string.&lt;br /&gt;
|-&lt;br /&gt;
| base64encode(string)&lt;br /&gt;
| &lt;br /&gt;
| Returns string - Encodes string in to several characters of a 64 printable character set (A-Z, a-z, 0-9, + and /, while &amp;quot;=&amp;quot; is a special suffix code)&lt;br /&gt;
|-&lt;br /&gt;
| boxcontains(string, string)&lt;br /&gt;
| &lt;br /&gt;
| returns boolean.&lt;br /&gt;
|-&lt;br /&gt;
| boxcontainsvector(string, string)&lt;br /&gt;
| &lt;br /&gt;
| returns boolean&lt;br /&gt;
|-&lt;br /&gt;
| boxintersect(string, string)&lt;br /&gt;
| &lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| boxoverlaps(string, string)&lt;br /&gt;
| &lt;br /&gt;
| returns boolean&lt;br /&gt;
|-&lt;br /&gt;
| boxscale(string, string)&lt;br /&gt;
| &lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| callnpc(int index, string function)&lt;br /&gt;
| &lt;br /&gt;
| Calls a function from an NPC where 'index' is the NPC's index and 'function' is the function name.&lt;br /&gt;
|-&lt;br /&gt;
| callweapon(int index, string function)&lt;br /&gt;
| &lt;br /&gt;
| Calls a function from a weapon where 'index' is the weapon's index and 'function' is the function name.&lt;br /&gt;
|-&lt;br /&gt;
| castray({x,y,x}, {x,y,z}, string type)&lt;br /&gt;
| [3D]&lt;br /&gt;
| returns object - specify the start and end of the ray, and the object types (e.g. &amp;quot;staticts,terrain,interior&amp;quot;)&lt;br /&gt;
|-&lt;br /&gt;
| checksum(string)&lt;br /&gt;
| &lt;br /&gt;
| returns float&lt;br /&gt;
|-&lt;br /&gt;
| contains(string2, string1)&lt;br /&gt;
| &lt;br /&gt;
| returns boolean - True if string1 is contained within string2.&lt;br /&gt;
|-&lt;br /&gt;
| copystrings(string, string)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| cursoroff()&lt;br /&gt;
| [opengl]&lt;br /&gt;
| Disables the visible mouse cursor.&lt;br /&gt;
|-&lt;br /&gt;
| cursoron()&lt;br /&gt;
| [opengl]&lt;br /&gt;
| Enables the visible mouse cursor.&lt;br /&gt;
|-&lt;br /&gt;
| degtorad(float)&lt;br /&gt;
| &lt;br /&gt;
| returns float - Converts angle measurements of degrees to radians&lt;br /&gt;
|-&lt;br /&gt;
| detachplayer()&lt;br /&gt;
| &lt;br /&gt;
| Detaches a player from an attached object.&lt;br /&gt;
|-&lt;br /&gt;
| disabledefmovement()&lt;br /&gt;
| &lt;br /&gt;
| Disables the default movement system and controls(including weapons, sword, grab. Does not include Q-menu, pause, map...).&lt;br /&gt;
|-&lt;br /&gt;
| disablemap()&lt;br /&gt;
| &lt;br /&gt;
| Disables the default map (M).&lt;br /&gt;
|-&lt;br /&gt;
| disablepause()&lt;br /&gt;
| &lt;br /&gt;
| Disables the default pause (P).&lt;br /&gt;
|-&lt;br /&gt;
| disableselectweapons()&lt;br /&gt;
| &lt;br /&gt;
| Disables the default Q-menu (Q).&lt;br /&gt;
|-&lt;br /&gt;
| disableweapons()&lt;br /&gt;
| &lt;br /&gt;
| Disables the default sword (S) and weapons (D).&lt;br /&gt;
|-&lt;br /&gt;
| echo(string)&lt;br /&gt;
| &lt;br /&gt;
| echos 'string' to the debug window(F2).&lt;br /&gt;
|-&lt;br /&gt;
| enabledefmovement()&lt;br /&gt;
| &lt;br /&gt;
| Enables the default movement system.&lt;br /&gt;
|-&lt;br /&gt;
| [[Creation/Dev/Script/Functions/enablefeatures(int)|enablefeatures(int)]]&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| enablemap()&lt;br /&gt;
| &lt;br /&gt;
| Enables the default map system(M).&lt;br /&gt;
|-&lt;br /&gt;
| enablepause()&lt;br /&gt;
| &lt;br /&gt;
| Enables the default pause system(P).&lt;br /&gt;
|-&lt;br /&gt;
| enableselectweapons()&lt;br /&gt;
| &lt;br /&gt;
| Enables the default Q-menu(Q).&lt;br /&gt;
|-&lt;br /&gt;
| enableweapons()&lt;br /&gt;
| &lt;br /&gt;
| Enables the default sword(S) and weapons(D).&lt;br /&gt;
|-&lt;br /&gt;
| escapestring(string)&lt;br /&gt;
| &lt;br /&gt;
| returns string - adds \\ in front of &amp;quot;, ' and \\, and removes non-printable characters&lt;br /&gt;
|-&lt;br /&gt;
| explodebomb(integer)&lt;br /&gt;
| &lt;br /&gt;
| explodes the bomb with the id of 'integer'.&lt;br /&gt;
|-&lt;br /&gt;
| extractfilebase(string)&lt;br /&gt;
| &lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| extractfileext(string)&lt;br /&gt;
| &lt;br /&gt;
| Takes in a file name, and returns its extension. &lt;br /&gt;
|-&lt;br /&gt;
| extractfilepath(string)&lt;br /&gt;
| &lt;br /&gt;
| returns string &lt;br /&gt;
|-&lt;br /&gt;
| fileexists(string)&lt;br /&gt;
| &lt;br /&gt;
| returns boolean of whether the file 'str' exists in the players Graal/ directory(does not search subfolders).&lt;br /&gt;
|-&lt;br /&gt;
| filesize(string)&lt;br /&gt;
| &lt;br /&gt;
| Returns the size(int) of the file 'string' in the players Graal/ directory(does not search subfolders).&lt;br /&gt;
|-&lt;br /&gt;
| fileupdate(string)&lt;br /&gt;
| &lt;br /&gt;
| returns boolean&lt;br /&gt;
|-&lt;br /&gt;
| findani(string)&lt;br /&gt;
| &lt;br /&gt;
| returns object&lt;br /&gt;
|-&lt;br /&gt;
| findfiles(string, integer)&lt;br /&gt;
| &lt;br /&gt;
| returns object&lt;br /&gt;
|-&lt;br /&gt;
| findlevel(string)&lt;br /&gt;
| &lt;br /&gt;
| returns object&lt;br /&gt;
|-&lt;br /&gt;
| findnearestplayer(float1, float2)&lt;br /&gt;
| &lt;br /&gt;
| Returns the closest player's object relevant to float1 and float2.&lt;br /&gt;
|-&lt;br /&gt;
| findnearestplayers(float, float)&lt;br /&gt;
| &lt;br /&gt;
| Returns the closest players' object relevant to float1 and float2.&lt;br /&gt;
|-&lt;br /&gt;
| findnpcbyid(integer)&lt;br /&gt;
|&lt;br /&gt;
| Returns the NPC object with the ID of 'int'.&lt;br /&gt;
|-&lt;br /&gt;
| findpathinarray(obj1, obj2, obj3, obj4, obj5, int, int, int)&lt;br /&gt;
|&lt;br /&gt;
| Returns object - Simple path-finding: Obj1 being tiles that allow walking, Obj2 being tiles that don't allow walking, Obj3; tiles that shouldn't be allowed to walked on, Obj4; tiles that are able to be walked on, Obj5; tiles where we may stop. Integers are relevant to the startx, starty and maximum path length. - Arrays for allowed/non-allowed tiles are only checked if they aren't null.&lt;br /&gt;
|-&lt;br /&gt;
| findplayer(string)&lt;br /&gt;
|&lt;br /&gt;
| Returns the player object with the account equal to string.&lt;br /&gt;
|-&lt;br /&gt;
| findplayerbycommunityname(string)&lt;br /&gt;
|&lt;br /&gt;
| Returns the player object with the community name equal to string.&lt;br /&gt;
|-&lt;br /&gt;
| findplayerbyid(integer)&lt;br /&gt;
|&lt;br /&gt;
| Returns the player object with the ID equal to integer.&lt;br /&gt;
|-&lt;br /&gt;
| findweapon(string)&lt;br /&gt;
|&lt;br /&gt;
| Returns the weapon object with the name equal to string.&lt;br /&gt;
|-&lt;br /&gt;
| format(string, string, ...)&lt;br /&gt;
|&lt;br /&gt;
| See [[Creation/Dev/Output_Methods#format.28.29_function|format()]]. &lt;br /&gt;
|- &lt;br /&gt;
| format2(string, array)&lt;br /&gt;
| &lt;br /&gt;
| Like format(), except that this expects the format string and an array of variables instead of passing the variables as separate parameters.&lt;br /&gt;
|-&lt;br /&gt;
| freefileresources(string)&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| freezeplayer(float)&lt;br /&gt;
|&lt;br /&gt;
| Freezes the player for the number of seconds specified by float.&lt;br /&gt;
|-&lt;br /&gt;
| get3dobjectat(float, float, boolean)&lt;br /&gt;
| [3D]&lt;br /&gt;
| Gets the 3d object at the specified screen position, third parameter true if it should do box collision.&lt;br /&gt;
|-&lt;br /&gt;
| get3dobjectatmouse(boolean)&lt;br /&gt;
| [3D]&lt;br /&gt;
| Gets the 3d object at the mouse.  Parameter true if it should do box collision.&lt;br /&gt;
|-&lt;br /&gt;
| get3dobjectbyray(string, string)&lt;br /&gt;
| [3D]&lt;br /&gt;
| returns object&lt;br /&gt;
|-&lt;br /&gt;
| get3dobjectsbybox(string, string)&lt;br /&gt;
| [3D]&lt;br /&gt;
| 1st parameter defines the box {minx,miny,minz, maxx,maxy,maxz}.  Second parameter specifies the type of object to find (e.g. &amp;quot;staticts,terrain,interior&amp;quot;)&lt;br /&gt;
|-&lt;br /&gt;
| get3dscreenposition(string, boolean)&lt;br /&gt;
| [3D]&lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| getanglesfromvector({x, y, z})&lt;br /&gt;
|&lt;br /&gt;
| Returns an array that contains the angles the 3D vector {x, y, z} makes with the X-Y and X-Z axes.&lt;br /&gt;
|-&lt;br /&gt;
| getascii(string)&lt;br /&gt;
|&lt;br /&gt;
| Returns the [http://www.asciitable.com/ ascii] code for string.&lt;br /&gt;
|-&lt;br /&gt;
| getbasepackage()&lt;br /&gt;
|&lt;br /&gt;
| returns object&lt;br /&gt;
|-&lt;br /&gt;
| getboxcenter(string)&lt;br /&gt;
|&lt;br /&gt;
| Returns an array containing the center of a 3D box specified by string ({x0,y0,z0,x1,y1,z1,...}).&lt;br /&gt;
|-&lt;br /&gt;
| getdesktopresolution()&lt;br /&gt;
|&lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| getdisplaydevicelist()&lt;br /&gt;
|&lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| getdownloadedupdatepackagesize()&lt;br /&gt;
|&lt;br /&gt;
| Returns the size of the downloaded update package.&lt;br /&gt;
|-&lt;br /&gt;
| getdownloadingpackage()&lt;br /&gt;
|&lt;br /&gt;
| Returns a reference to current update package being downloaded.&lt;br /&gt;
|-&lt;br /&gt;
| getdownloadingpackagescount()&lt;br /&gt;
|&lt;br /&gt;
| Returns a count of the number of update packages to download.&lt;br /&gt;
|-&lt;br /&gt;
| getdropz(string)&lt;br /&gt;
|&lt;br /&gt;
| returns float&lt;br /&gt;
|-&lt;br /&gt;
| getExtension(string)&lt;br /&gt;
|&lt;br /&gt;
| This function is the same as extractFileExt().  Takes in a file name, and returns its extension.&lt;br /&gt;
|-&lt;br /&gt;
| getfilemodtime(string)&lt;br /&gt;
|&lt;br /&gt;
| Returns a timestamp of when the file was last modified (in unix time compatible to timevar2). This function accepts both exact file path and plain file name.&lt;br /&gt;
|-&lt;br /&gt;
| gethttprequest(string, integer, string)&lt;br /&gt;
| &lt;br /&gt;
| returns object (This function is the same as requestHttp())&lt;br /&gt;
|-&lt;br /&gt;
| getimgheight(string)&lt;br /&gt;
|&lt;br /&gt;
| Returns the height (in pixels) of the filename indicated by string.&lt;br /&gt;
|-&lt;br /&gt;
| getimgpixel(string, integer, integer)&lt;br /&gt;
|&lt;br /&gt;
| returns object&lt;br /&gt;
|-&lt;br /&gt;
| getimgwidth(string)&lt;br /&gt;
|&lt;br /&gt;
| Returns the width(in pixels) of the filename indicated by string.&lt;br /&gt;
|-&lt;br /&gt;
| getkeycode(string)&lt;br /&gt;
|&lt;br /&gt;
| Returns the keycode of the key indicated by string.  The keycode returned can be used in keydown2().&lt;br /&gt;
|-&lt;br /&gt;
| getloginaccountname()&lt;br /&gt;
|&lt;br /&gt;
| Presumably used for the login server.  Use player.account instead.&lt;br /&gt;
|-&lt;br /&gt;
| getmapx(string)&lt;br /&gt;
| &lt;br /&gt;
| Gets the x coordinate location in the gmap of the level indicated by string.  The top-left level starts at (0, 0).&lt;br /&gt;
|-&lt;br /&gt;
| getmapy(string)&lt;br /&gt;
|&lt;br /&gt;
| Gets the y coordinate location in the gmap of the level indicated by string.  The top-left level starts at (0, 0).&lt;br /&gt;
|-&lt;br /&gt;
| getmusicfilename()&lt;br /&gt;
|&lt;br /&gt;
| Returns the filename of the music currently playing.&lt;br /&gt;
|-&lt;br /&gt;
| getmusicstatus()&lt;br /&gt;
|&lt;br /&gt;
| Returns the status of the music currently playing.&lt;br /&gt;
|-&lt;br /&gt;
| getmusictags()&lt;br /&gt;
|&lt;br /&gt;
| Returns the tags of the music currently playing.  This function can be used to retrieve the title and artist info of the music.&lt;br /&gt;
|-&lt;br /&gt;
| getnearestplayer(float, float)&lt;br /&gt;
|&lt;br /&gt;
| Deprecated.  Use findnearestplayer() instead.&lt;br /&gt;
|-&lt;br /&gt;
| getnearestplayers(float, float)&lt;br /&gt;
|&lt;br /&gt;
| Deprecated.  Use findnearestplayers() instead.&lt;br /&gt;
|-&lt;br /&gt;
| getpackagesdownloadcomplete()&lt;br /&gt;
|&lt;br /&gt;
| Returns 'true' if the package downloads are complete.&lt;br /&gt;
|-&lt;br /&gt;
| getpackagesdownloaded()&lt;br /&gt;
|&lt;br /&gt;
| Returns 'true' if the most recent packages are already downloaded.&lt;br /&gt;
|-&lt;br /&gt;
| getplatform()&lt;br /&gt;
|&lt;br /&gt;
| Returns the platform that the player is using.  (i.e. windows, mac, or linux)&lt;br /&gt;
|-&lt;br /&gt;
| getresolutionlist(string)&lt;br /&gt;
|&lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| getservername()&lt;br /&gt;
|&lt;br /&gt;
| Returns the name of the server the player is currently connected to.&lt;br /&gt;
|-&lt;br /&gt;
| getstringkeys(string)&lt;br /&gt;
|&lt;br /&gt;
| Returns an array of the variables that begins with the supplied string.&lt;br /&gt;
|-&lt;br /&gt;
| getterraintexture(float, float)&lt;br /&gt;
|&lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| getterraintextureindex(float, float)&lt;br /&gt;
|&lt;br /&gt;
| returns integer&lt;br /&gt;
|-&lt;br /&gt;
| gettextheight(float zoom, string style, string font)&lt;br /&gt;
|&lt;br /&gt;
| returns integer - The height in pixels of the text with the given zoom, style and font.&lt;br /&gt;
|-&lt;br /&gt;
| gettextwidth(float zoom, string style, string font, string text)&lt;br /&gt;
|&lt;br /&gt;
| returns integer - The width of the text with the given zoom, style, font and text.&lt;br /&gt;
|-&lt;br /&gt;
| gettileset()&lt;br /&gt;
|&lt;br /&gt;
| returns string - the current main tileset (pics1.png, picso.png etc.)&lt;br /&gt;
|-&lt;br /&gt;
| gettilesettype()&lt;br /&gt;
|&lt;br /&gt;
| returns integer - the current tileset type (pics1.png:0, picso.png:5 etc.)&lt;br /&gt;
|-&lt;br /&gt;
| gettotalupdatepackagesize()&lt;br /&gt;
|&lt;br /&gt;
| returns integer - The total size of the update packages.&lt;br /&gt;
|-&lt;br /&gt;
| getupdatepackage(string name)&lt;br /&gt;
|&lt;br /&gt;
| returns object - A reference to the update package with the given name.&lt;br /&gt;
|-&lt;br /&gt;
| getvectorfromangles(float, float)&lt;br /&gt;
|&lt;br /&gt;
| returns string&lt;br /&gt;
|- &lt;br /&gt;
| getz(float, float)&lt;br /&gt;
|&lt;br /&gt;
| returns float&lt;br /&gt;
|-&lt;br /&gt;
| graalcontrolhasfocus(bool)&lt;br /&gt;
|&lt;br /&gt;
| returns boolean - Whether or not the graal control has focus.  Parameter says if it should also check if the chat bar has the focus&lt;br /&gt;
|-&lt;br /&gt;
| hideplayer(float time)&lt;br /&gt;
|&lt;br /&gt;
| Hides player for the specified amount of time.&lt;br /&gt;
|-&lt;br /&gt;
| hidesword(float time)&lt;br /&gt;
|&lt;br /&gt;
| Hides the player's sword for the specified amount of time.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;  hitnpc(int, float, float, float)&lt;br /&gt;
  hitobjects(float, float, float)&lt;br /&gt;
  hitplayer(int, float, float, float)&lt;br /&gt;
  isadminguild(str) - returns boolean&lt;br /&gt;
  isclassloaded(str) - returns boolean&lt;br /&gt;
  iscursoron() - returns boolean&lt;br /&gt;
  isdevicefullscreenonly(str) - returns boolean&lt;br /&gt;
  isdownloading(str) - returns boolean - checks if a file is currently downloaded or requested from the server&lt;br /&gt;
  isdownloadingfiles() - returns boolean - checks if Graal is currently downloading or requesting files from the server&lt;br /&gt;
  isfullscreenmode() - returns boolean&lt;br /&gt;
  isimgpixeltransparent(str, int, int) - returns boolean&lt;br /&gt;
  isimgrectangletransparent(str, int, int, int, int) - returns boolean&lt;br /&gt;
  ismusicplaying() - returns boolean&lt;br /&gt;
  isobject(str) - returns boolean&lt;br /&gt;
  issoundplaying(str) - returns boolean&lt;br /&gt;
  keydown(int) - returns boolean&lt;br /&gt;
  keydown2(int, bool) - returns boolean&lt;br /&gt;
  keydown2global(int, bool) - returns boolean&lt;br /&gt;
  keydownglobal(int) - returns boolean&lt;br /&gt;
  keyname(int) - returns string&lt;br /&gt;
  lay2(str, float, float)&lt;br /&gt;
  lightscene() - returns boolean&lt;br /&gt;
  loadclass(str)&lt;br /&gt;
  loadmap(str)&lt;br /&gt;
  loadtranslation(str)&lt;br /&gt;
  lowercase(str) - returns string&lt;br /&gt;
  ltmfs(bool)&lt;br /&gt;
  ltmmax(float, float)&lt;br /&gt;
  ltmmin(float, float)&lt;br /&gt;
  makescreenshot2(str, int, float, float, float, int, int)&lt;br /&gt;
  matrixcreate(str, str) - returns string&lt;br /&gt;
  matrixcreatefromeuler(str) - returns string&lt;br /&gt;
  matrixmulpoint(str, str) - returns string&lt;br /&gt;
  matrixmultiply(str, str) - returns string&lt;br /&gt;
  matrixmulvector(str, str) - returns string&lt;br /&gt;
  md5(str) - returns string&lt;br /&gt;
  noplayerkilling()&lt;br /&gt;
  onwall(float, float) - returns boolean&lt;br /&gt;
  onwall2(float, float, float, float) - returns boolean&lt;br /&gt;
  onwater(float, float) - returns boolean&lt;br /&gt;
  onwater2(float, float, float, float) - returns boolean&lt;br /&gt;
  opengraalurl(str)&lt;br /&gt;
  openurl(str)&lt;br /&gt;
  openurl2(str, int, int)&lt;br /&gt;
  play(str)&lt;br /&gt;
  play2(str, float, float, float)&lt;br /&gt;
  play3d(str, bool, str, str)&lt;br /&gt;
  playlooped(str)&lt;br /&gt;
  playlooped2(str, float, float, float)&lt;br /&gt;
  popdialog()&lt;br /&gt;
  pushdialog(obj)&lt;br /&gt;
  putleaps(int, float, float)&lt;br /&gt;
  radtodeg(float) - returns float&lt;br /&gt;
  randomstring(str) - returns string&lt;br /&gt;
  removetiledefs(str)&lt;br /&gt;
  replaceani(str, str)&lt;br /&gt;
  requestfiledeletion(str)&lt;br /&gt;
  requestfilerename(str, str)&lt;br /&gt;
  requestfilesmove(str, str)&lt;br /&gt;
  requesthttp(str, int, str) - returns object&lt;br /&gt;
  requesttext(str, str)&lt;br /&gt;
  requesturl(str) - returns object&lt;br /&gt;
  resetfocus()&lt;br /&gt;
  rotationadd(str, str) - returns string&lt;br /&gt;
  rotationaddeuler(str, str) - returns string&lt;br /&gt;
  rotationfromeuler(str) - returns string&lt;br /&gt;
  rotationsub(str, str) - returns string&lt;br /&gt;
  rotationtoeuler(str) - returns string&lt;br /&gt;
  rungarbagecollector()&lt;br /&gt;
  savelog(str)&lt;br /&gt;
  say(int)&lt;br /&gt;
  say2(str)&lt;br /&gt;
  screenx(float, float) - returns integer&lt;br /&gt;
  screeny(float, float) - returns integer&lt;br /&gt;
  selectfilefordownload(str) - opens the select-file-dialog for the download location of files (from scripted RC)&lt;br /&gt;
  selectfileforupload() - opens the select-file-dialog for uploading of files (into scripted RC)&lt;br /&gt;
  sendrpgmessage(str)&lt;br /&gt;
  sendtext(str, str, params...)&lt;br /&gt;
  sendtorc(str)&lt;br /&gt;
  serverwarp(str)&lt;br /&gt;
  setani(str, str)&lt;br /&gt;
  setbeltcolor(str)&lt;br /&gt;
  setcoatcolor(str)&lt;br /&gt;
  setcontentcontrol(obj)&lt;br /&gt;
  setcursor2(str)&lt;br /&gt;
  seteffect(float, float, float, float)&lt;br /&gt;
  setfocus(float, float)&lt;br /&gt;
  setfogcolors(obj)&lt;br /&gt;
  setgender(str)&lt;br /&gt;
  sethead(str)&lt;br /&gt;
  setinteriorrendermode(int)&lt;br /&gt;
  setletters(str)&lt;br /&gt;
  setmap(str, str, float, float) - sets a text map (you can see the tiles of other levels but not the npcs), parameters are text file with level names, the map image (not used anymore), default x and y for the head icons; use gmaps if possible instead of this&lt;br /&gt;
  setminimap(str, str, float, float) - parameters are a text file with level names, the image, default x and y; use gmaps if possible instead of this&lt;br /&gt;
  setmusicvolume(float, float)&lt;br /&gt;
  setplayerdir(str)&lt;br /&gt;
  setshield(str, int)&lt;br /&gt;
  setshoecolor(str)&lt;br /&gt;
  setshootparams(str)&lt;br /&gt;
  setskincolor(str)&lt;br /&gt;
  setskybandcolors(obj)&lt;br /&gt;
  setskybandsizes(obj)&lt;br /&gt;
  setsleevecolor(str)&lt;br /&gt;
  setspritesimage(str)&lt;br /&gt;
  setstatusimage(str)&lt;br /&gt;
  setsuncolors(obj)&lt;br /&gt;
  setsword(str, int)&lt;br /&gt;
  setterrainrendermode(int)&lt;br /&gt;
  showstats(int)&lt;br /&gt;
  spyfire(int, int)&lt;br /&gt;
  startrecordvideo() - returns boolean&lt;br /&gt;
  stopmidi() - same as stopmusic(), kept for compatibility&lt;br /&gt;
  stopmusic()&lt;br /&gt;
  stoprecordvideo() - returns boolean&lt;br /&gt;
  stopsound(str)&lt;br /&gt;
  strcmp(str, str) - returns integer&lt;br /&gt;
  strequals(str, str) - returns boolean&lt;br /&gt;
  switchtoopengl()&lt;br /&gt;
  synctimeofday(float, float)&lt;br /&gt;
  takeplayercarry()&lt;br /&gt;
  takeplayerhorse()&lt;br /&gt;
  testplayer(float, float) - returns integer&lt;br /&gt;
  trace(str) - same as echo()&lt;br /&gt;
  triggeraction(float, float, str, params...)&lt;br /&gt;
  triggerserver(str, str)&lt;br /&gt;
  update3dterrain(float, float, float, float)&lt;br /&gt;
  updateboard(int, int, int, int)&lt;br /&gt;
  updateterrain()&lt;br /&gt;
  updatevisibledistance()&lt;br /&gt;
  uploadfile(str) - uploads a file, you must provide the full path provided by a onDropFiles() event, also this will only work if the scripted RC has currently a file browser window open; once the file is uploaded an onFilesUploaded event will be invoked&lt;br /&gt;
  uppercase(str) - returns string&lt;br /&gt;
  vectoradd(str, str) - returns string&lt;br /&gt;
  vectorcross(str, str) - returns string&lt;br /&gt;
  vectordist(str, str) - returns float&lt;br /&gt;
  vectordot(str, str) - returns float&lt;br /&gt;
  vectorlen(str) - returns float&lt;br /&gt;
  vectornormalize(str) - returns string&lt;br /&gt;
  vectororthobasis(str) - returns string&lt;br /&gt;
  vectorscale(str, float) - returns string&lt;br /&gt;
  vectorsub(str, str) - returns string&lt;br /&gt;
  worldx(float, float) - returns float&lt;br /&gt;
  worldy(float, float) - returns float&lt;br /&gt;
  wraptext(int, str, str) - returns object&lt;br /&gt;
  wraptext2(int, float, str, str) - returns object&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Objects=&lt;br /&gt;
&amp;lt;pre&amp;gt;TGraalVar:&lt;br /&gt;
  initialized - boolean [R]&lt;br /&gt;
  ispaused - boolean - suspends the script if set to paused&lt;br /&gt;
  joinedclasses - object&lt;br /&gt;
  maxlooplimit - integer - sets the maxmimum number of loop iterations, default 10000; the allowed range for this can vary from server to server&lt;br /&gt;
  name - string&lt;br /&gt;
  scripterrors - object [R] - gives the list of script errors which were reported for this object&lt;br /&gt;
  scriptlogmissingfunctions - boolean&lt;br /&gt;
  timeout - float&lt;br /&gt;
  addarray(obj) - adds another array to this variable&lt;br /&gt;
  addarraymember(str) - returns object - adds an array member with a name and returns the new array member&lt;br /&gt;
  addnamedstring(str, str) - returns object&lt;br /&gt;
  cancelevents(str) - removes all previously scheduled events (scheduleevent) of the specified event name&lt;br /&gt;
  catchevent(str, str, str) - adds an event handler for the specified object and event, third parameter is the function which receives the event (first parameter of the event will be the object for which the event occured)&lt;br /&gt;
  clearemptyvars() - removes empty subvariables from memory&lt;br /&gt;
  clearvars() - clears all dynamic variables&lt;br /&gt;
  copyfrom(obj) - copies all variables and array values from another object, doesn't work for protected variables like players though&lt;br /&gt;
  getarraymember(str) - returns object - searches for an array member by name&lt;br /&gt;
  getdynamicvarnames() - returns object - gets the names of all dynamic (not built-in) subvariables of this object&lt;br /&gt;
  geteditvarnames() - returns object - gets the names of all dynamic variables which can be modified&lt;br /&gt;
  getfunctions() - returns object - gets the names of all functions of the object as array, also each entry has subvariables which give more information about the function (&amp;quot;parameters&amp;quot;, &amp;quot;description&amp;quot;, &amp;quot;scope&amp;quot;)&lt;br /&gt;
  getstaticvarnames() - returns object - gets the names of all static (built-in) subvariables of this object&lt;br /&gt;
  getvarnames() - returns object - gets the names of all subvariables of this object&lt;br /&gt;
  hasfunction(str) - returns boolean - checks if the object has a function of the specified name (also checks if it can be called by the current script object)&lt;br /&gt;
  ignoreevent(str, str) - lets the object ignore an event (second parameter) of the specified object name&lt;br /&gt;
  ignoreevents(str) - lets the object ignore all previously catched events of the specified object name&lt;br /&gt;
  insertarray(int, obj) - inserts an array at the specified index&lt;br /&gt;
  isinclass(str) - returns boolean - checks if the object has joined the specified class&lt;br /&gt;
  join(str) - lets the object join a class and inherit all functions and event handlers of that class&lt;br /&gt;
  leave(str) - leaves a previously joined class&lt;br /&gt;
  loadfolder(str, int) - loads the content of a folder into the variable, you must specify the folder name and pattern (e.g. &amp;quot;levels/bodies/*.png&amp;quot;) and if it should be recursive&lt;br /&gt;
  loadini(str) - loads an .ini file into the variable, you can access variables by obj.inisection.varname&lt;br /&gt;
  loadlines(str) - loads a file and adds it line by line to the variable (as array)&lt;br /&gt;
  loadstring(str) - loads the content of a file into the variable&lt;br /&gt;
  loadvars(str) - loads the variables from a file where each line has the format varname=value&lt;br /&gt;
  loadvarsfromarray(obj) - loads the variables from a string list of the format varname=value&lt;br /&gt;
  loadxml(str)&lt;br /&gt;
  loadxmlfromstring(str)&lt;br /&gt;
  objecttype() - returns string - returns the object type, which can be TGraalVar, TProjectile etc.&lt;br /&gt;
  savelines(str, int) - saves the array line by line into a file, the second parameter is the save mode (0 - overwrite, 1 - append)&lt;br /&gt;
  savestring(str, int) - saves the value as string into a file, the second parameter is the save mode (0 - overwrite, 1 - append)&lt;br /&gt;
  savevars(str, int) - saves the subvars in the format varname=value into a file, the second parameter is the save mode (0 - overwrite, 1 - append)&lt;br /&gt;
  savevarstoarray(bool) - returns object - saves the subvars in the format varname=value into an array, you must specify if it should be sorted&lt;br /&gt;
  savexml(str, int)&lt;br /&gt;
  savexmltostring() - returns string&lt;br /&gt;
  scheduleevent(float, str, params...) - returns object - invokes an event (onEventname) after the specified delay (in seconds), second parameter is the event name, followed by the parameters&lt;br /&gt;
  settimer(float) - invokes an onTimeout event after the specified time, similar to 'timeout=value'&lt;br /&gt;
  sortascending() - sorts the array in ascending order (smallest value first)&lt;br /&gt;
  sortbyvalue(str, str, bool) - sorts an array, specify the variable of the array members which is compared, also the variable type and if it should be sorted ascending; variable type can be &amp;quot;string&amp;quot;, otherwise it is sorted by floating point value&lt;br /&gt;
  sortdescending() - sorts the array in descending order (highest value first)&lt;br /&gt;
  subarray2(int, int, int, int) - returns object - extracts a two-dimensional array, specify startpos1, length1, startpos2, length2&lt;br /&gt;
  timershow() - lets an npc show the current timeout variable, deprecated&lt;br /&gt;
  trigger(str, params...) - invokes an event on the object (onEventname) with the specified event name and parameters, doesn't interrupt the current script&lt;br /&gt;
&lt;br /&gt;
  ActionMap (TGraalVar):&lt;br /&gt;
    bind(str, str, str)&lt;br /&gt;
    getbinding(str) - returns string&lt;br /&gt;
    getcommand(str, str) - returns string&lt;br /&gt;
    load() - returns boolean&lt;br /&gt;
    pop()&lt;br /&gt;
    push()&lt;br /&gt;
    save()&lt;br /&gt;
    unbind(str, str)&lt;br /&gt;
&lt;br /&gt;
  DTSAniThread (TGraalVar):&lt;br /&gt;
    aniindex - integer [R]&lt;br /&gt;
    atend - boolean [R]&lt;br /&gt;
    attack - boolean&lt;br /&gt;
    endpos - float&lt;br /&gt;
    hold - boolean&lt;br /&gt;
    position - float&lt;br /&gt;
    sequence - string&lt;br /&gt;
    startpos - float&lt;br /&gt;
    state - string&lt;br /&gt;
    timescale - float&lt;br /&gt;
    transtitiontime - float&lt;br /&gt;
    isintransition() - returns boolean&lt;br /&gt;
    play()&lt;br /&gt;
&lt;br /&gt;
  GameMovementInterpolate (TGraalVar):&lt;br /&gt;
    rigid - object [R]&lt;br /&gt;
    applyimpulse(str, str)&lt;br /&gt;
&lt;br /&gt;
    GameMovementRigid (GameMovementInterpolate):&lt;br /&gt;
      addrigidmove(str, str) - adds torque and force vector&lt;br /&gt;
&lt;br /&gt;
  GameMovementList (TGraalVar):&lt;br /&gt;
    finishmoves()&lt;br /&gt;
    move3d(str, float, int)&lt;br /&gt;
&lt;br /&gt;
  GameShape (TGraalVar):&lt;br /&gt;
    pixelshader - string&lt;br /&gt;
    vertexshader - string&lt;br /&gt;
&lt;br /&gt;
    GameShapeDIF (GameShape):&lt;br /&gt;
      activatelight(str)&lt;br /&gt;
      deactivatelight(str)&lt;br /&gt;
&lt;br /&gt;
    GameShapeDTS (GameShape):&lt;br /&gt;
      materiallist - object [R]&lt;br /&gt;
      materials - object [R]&lt;br /&gt;
      forceanimations() - starts to animate the object to make sure the animations are the wished start position&lt;br /&gt;
      getanimation(int) - returns object&lt;br /&gt;
      listnodes() - returns object&lt;br /&gt;
      pauseanimation(int)&lt;br /&gt;
      playanimation(int, str, int) - returns object - specify animation slot, animation name and flags (1 - hold, 2 - atend, 4 - attackanimation)&lt;br /&gt;
      playanimation2(int, str, int, float, float, float, float) - returns object - specify animation slot, animation name, flags, startpos, endpos, timescale, transitiontime&lt;br /&gt;
      stopanimation(int)&lt;br /&gt;
&lt;br /&gt;
    GameShapeFT (GameShape):&lt;br /&gt;
      levels - integer&lt;br /&gt;
      seed - integer&lt;br /&gt;
&lt;br /&gt;
  MovieClip (TGraalVar):&lt;br /&gt;
    _level0 - object [R]&lt;br /&gt;
    _parent - object [R]&lt;br /&gt;
    _root - object [R]&lt;br /&gt;
    _visible - boolean&lt;br /&gt;
    _x - float&lt;br /&gt;
    _xmouse - float [R]&lt;br /&gt;
    _y - float&lt;br /&gt;
    _ymouse - float [R]&lt;br /&gt;
    alpha - float&lt;br /&gt;
    blue - float&lt;br /&gt;
    frame - integer&lt;br /&gt;
    framecount - integer [R]&lt;br /&gt;
    green - float&lt;br /&gt;
    height - float [R]&lt;br /&gt;
    layernames - object [R]&lt;br /&gt;
    looping - boolean&lt;br /&gt;
    math - object [R]&lt;br /&gt;
    objectname - string&lt;br /&gt;
    objectnames - object [R]&lt;br /&gt;
    playing - boolean&lt;br /&gt;
    red - float&lt;br /&gt;
    width - float [R]&lt;br /&gt;
    attachmovie(params...) - returns object - parameters are the movie clip to copy, the name of the new clip, and the layer&lt;br /&gt;
    createemptymovieclip(str, int) - returns object - parameters are the the name of the new clip and the layer&lt;br /&gt;
    duplicatemovieclip(params...) - returns object&lt;br /&gt;
    getbytesloaded() - returns integer&lt;br /&gt;
    getbytestotal() - returns integer&lt;br /&gt;
    getcolor() - returns string&lt;br /&gt;
    getdepth() - returns integer&lt;br /&gt;
    getlayer(str) - returns object&lt;br /&gt;
    getproperty(int) - returns string&lt;br /&gt;
    gotoandplay(params...) - specify the frame name or frame number&lt;br /&gt;
    gotoandstop(params...) - specify the frame name or frame number&lt;br /&gt;
    hittest(params...) - returns boolean&lt;br /&gt;
    nextframe()&lt;br /&gt;
    play()&lt;br /&gt;
    prevframe()&lt;br /&gt;
    removelayer(str)&lt;br /&gt;
    removemovieclip()&lt;br /&gt;
    setcolor(str)&lt;br /&gt;
    setproperty(int, str)&lt;br /&gt;
    stop()&lt;br /&gt;
    swapdepths(str)&lt;br /&gt;
    unloadmovie() - same as removeMovieClip()&lt;br /&gt;
&lt;br /&gt;
  MRandomGenerator (TGraalVar):&lt;br /&gt;
    seed - integer&lt;br /&gt;
    destroy()&lt;br /&gt;
    randfloat() - returns float - a random floating point number between 0 and 1&lt;br /&gt;
    randint() - returns integer - a random integer number between 0 and 2147483647, use the modulus operator to generate a value in a smaller range (e.g. obj.randInt()%10 to get a value between 0 and 9)&lt;br /&gt;
&lt;br /&gt;
    MRandomLCG (MRandomGenerator):&lt;br /&gt;
&lt;br /&gt;
    MRandomR250 (MRandomGenerator):&lt;br /&gt;
&lt;br /&gt;
  SimObject (TGraalVar):&lt;br /&gt;
&lt;br /&gt;
    SceneObject (SimObject):&lt;br /&gt;
      eulerrotation - string&lt;br /&gt;
      forwardvector - string&lt;br /&gt;
      objectbox - string [R]&lt;br /&gt;
      position - string&lt;br /&gt;
      renderposition - string&lt;br /&gt;
      rightvector - string&lt;br /&gt;
      rotation - string&lt;br /&gt;
      scale - string&lt;br /&gt;
      scaledobjectbox - string [R]&lt;br /&gt;
      transform - string&lt;br /&gt;
      upvector - string&lt;br /&gt;
      worldbox - string [R]&lt;br /&gt;
      worldboxcenter - string [R]&lt;br /&gt;
      x - float&lt;br /&gt;
      y - float&lt;br /&gt;
      z - float&lt;br /&gt;
      getforwardvector() - returns string&lt;br /&gt;
      getobjectbox() - returns string&lt;br /&gt;
      getposition() - returns string&lt;br /&gt;
      getrightvector() - returns string&lt;br /&gt;
      getscale() - returns string&lt;br /&gt;
      gettransform() - returns string&lt;br /&gt;
      getupvector() - returns string&lt;br /&gt;
      getworldbox() - returns string&lt;br /&gt;
      getworldboxcenter() - returns string&lt;br /&gt;
      light()&lt;br /&gt;
      setforwardvector(str)&lt;br /&gt;
      setposition(str)&lt;br /&gt;
      setrightvector(str)&lt;br /&gt;
      setscale(str)&lt;br /&gt;
      settransform(str)&lt;br /&gt;
      setupvector(str)&lt;br /&gt;
&lt;br /&gt;
      fxSunLight (SceneObject):&lt;br /&gt;
        animazimuth - boolean&lt;br /&gt;
        animbrightness - boolean&lt;br /&gt;
        animcolour - boolean&lt;br /&gt;
        animelevation - boolean&lt;br /&gt;
        animrotation - boolean&lt;br /&gt;
        animsize - boolean&lt;br /&gt;
        azimuthkeys - string&lt;br /&gt;
        azimuthtime - float&lt;br /&gt;
        blendmode - integer&lt;br /&gt;
        bluekeys - string&lt;br /&gt;
        brightness - float&lt;br /&gt;
        brightnesskeys - string&lt;br /&gt;
        brightnesstime - float&lt;br /&gt;
        colour - string&lt;br /&gt;
        colourtime - float&lt;br /&gt;
        elevationkeys - string&lt;br /&gt;
        elevationtime - float&lt;br /&gt;
        enable - boolean&lt;br /&gt;
        fadetime - float&lt;br /&gt;
        flaresize - float&lt;br /&gt;
        flaretp - boolean&lt;br /&gt;
        greenkeys - string&lt;br /&gt;
        lerpazimuth - boolean&lt;br /&gt;
        lerpbrightness - boolean&lt;br /&gt;
        lerpcolour - boolean&lt;br /&gt;
        lerpelevation - boolean&lt;br /&gt;
        lerprotation - boolean&lt;br /&gt;
        lerpsize - boolean&lt;br /&gt;
        linkflaresize - boolean&lt;br /&gt;
        localflarebitmap - string&lt;br /&gt;
        maxazimuth - float&lt;br /&gt;
        maxbrightness - float&lt;br /&gt;
        maxcolour - string&lt;br /&gt;
        maxelevation - float&lt;br /&gt;
        maxrotation - float&lt;br /&gt;
        maxsize - float&lt;br /&gt;
        minazimuth - float&lt;br /&gt;
        minbrightness - float&lt;br /&gt;
        mincolour - string&lt;br /&gt;
        minelevation - float&lt;br /&gt;
        minrotation - float&lt;br /&gt;
        minsize - float&lt;br /&gt;
        redkeys - string&lt;br /&gt;
        remoteflarebitmap - string&lt;br /&gt;
        rotationkeys - string&lt;br /&gt;
        rotationtime - float&lt;br /&gt;
        singlecolourkeys - boolean&lt;br /&gt;
        sizekeys - string&lt;br /&gt;
        sizetime - float&lt;br /&gt;
        sunazimuth - float&lt;br /&gt;
        sunelevation - float&lt;br /&gt;
        reset()&lt;br /&gt;
&lt;br /&gt;
      GameObject (SceneObject):&lt;br /&gt;
        alpha - float&lt;br /&gt;
        attachedtoobject - object&lt;br /&gt;
        attrobjects - object [R]&lt;br /&gt;
        chat - string&lt;br /&gt;
        collision - boolean&lt;br /&gt;
        iseditorobject - boolean&lt;br /&gt;
        liquidheight - float [R]&lt;br /&gt;
        liquidtype - string [R]&lt;br /&gt;
        movetype - string&lt;br /&gt;
        nick - string - same as nickname&lt;br /&gt;
        nickcolor - string&lt;br /&gt;
        nickname - string&lt;br /&gt;
        position - string&lt;br /&gt;
        scaledshapebox - string [R]&lt;br /&gt;
        shadow - boolean&lt;br /&gt;
        shape - string&lt;br /&gt;
        shapebox - string [R]&lt;br /&gt;
        showterrain - boolean&lt;br /&gt;
        skin - string&lt;br /&gt;
        solid - boolean&lt;br /&gt;
        transform - string&lt;br /&gt;
        velocity - string&lt;br /&gt;
        watercoverage - float [R]&lt;br /&gt;
        checkcollision(str, str) - returns object&lt;br /&gt;
        checkcollisionbybox(str, str, str) - returns object&lt;br /&gt;
        clippolygons(str) - returns object&lt;br /&gt;
        findimg(int) - returns object&lt;br /&gt;
        getcontrollingclient() - returns object&lt;br /&gt;
        getcontrollingobject() - returns object&lt;br /&gt;
        getdropz(str) - returns float&lt;br /&gt;
        getinteriorobject() - returns object&lt;br /&gt;
        getmountedobject(int) - returns object&lt;br /&gt;
        getmountedobjectcount() - returns integer&lt;br /&gt;
        getmountedobjectnode(int) - returns integer&lt;br /&gt;
        getmountnodeobject(int) - returns object&lt;br /&gt;
        getmountposition(int) - returns string&lt;br /&gt;
        getmounttransform(int) - returns string&lt;br /&gt;
        getnodeposition(str) - returns string&lt;br /&gt;
        getnodetransform(str) - returns string&lt;br /&gt;
        getobjectmount() - returns object&lt;br /&gt;
        hideimg(int)&lt;br /&gt;
        hideimgs(int, int)&lt;br /&gt;
        isdrawn() - returns boolean&lt;br /&gt;
        isininterior() - returns boolean&lt;br /&gt;
        ismounted() - returns boolean&lt;br /&gt;
        mountobject(obj, int) - returns boolean&lt;br /&gt;
        setdirection(str)&lt;br /&gt;
        unmount()&lt;br /&gt;
        unmountobject(obj) - returns boolean&lt;br /&gt;
&lt;br /&gt;
        Camera (GameObject):&lt;br /&gt;
          cameramode - string&lt;br /&gt;
          eulerrotation - string&lt;br /&gt;
          followattachedobject - object&lt;br /&gt;
          lookatposition - string&lt;br /&gt;
          lookvector - string&lt;br /&gt;
          updateposition()&lt;br /&gt;
&lt;br /&gt;
        DynamicShapeReplicator (GameObject):&lt;br /&gt;
          aligntoterrain - boolean&lt;br /&gt;
          allowedterrainslope - integer&lt;br /&gt;
          allowoninteriors - boolean&lt;br /&gt;
          allowonstatics - boolean&lt;br /&gt;
          allowonterrain - boolean&lt;br /&gt;
          allowonwater - boolean&lt;br /&gt;
          allowwatersurface - boolean&lt;br /&gt;
          boxmax - string&lt;br /&gt;
          boxmin - string&lt;br /&gt;
          hidereplications - boolean&lt;br /&gt;
          maxgridobjects - integer&lt;br /&gt;
          mingridobjects - integer&lt;br /&gt;
          offsetz - float&lt;br /&gt;
          radius - integer&lt;br /&gt;
          seed - integer&lt;br /&gt;
          shapefiles - string&lt;br /&gt;
          shaperotatemax - string&lt;br /&gt;
          shaperotatemin - string&lt;br /&gt;
          shapescalemax - string&lt;br /&gt;
          shapescalemin - string&lt;br /&gt;
          surfaceexclusionmode - boolean&lt;br /&gt;
          surfacetype - integer&lt;br /&gt;
          terrainalignment - string&lt;br /&gt;
&lt;br /&gt;
          DynamicGrass (DynamicShapeReplicator):&lt;br /&gt;
&lt;br /&gt;
          DynamicGrassReplicator (DynamicShapeReplicator):&lt;br /&gt;
&lt;br /&gt;
      Sky (SceneObject):&lt;br /&gt;
        cloudheight1 - float&lt;br /&gt;
        cloudheight2 - float&lt;br /&gt;
        cloudheight3 - float&lt;br /&gt;
        cloudspeed1 - float&lt;br /&gt;
        cloudspeed2 - float&lt;br /&gt;
        cloudspeed3 - float&lt;br /&gt;
        fogcolor - string&lt;br /&gt;
        fogstorm1 - boolean&lt;br /&gt;
        fogstorm2 - boolean&lt;br /&gt;
        fogstorm3 - boolean&lt;br /&gt;
        fogvolume1 - string&lt;br /&gt;
        fogvolume2 - string&lt;br /&gt;
        fogvolume3 - string&lt;br /&gt;
        fogvolumecolor1 - string&lt;br /&gt;
        fogvolumecolor2 - string&lt;br /&gt;
        fogvolumecolor3 - string&lt;br /&gt;
        materiallist - string&lt;br /&gt;
        norenderbans - boolean&lt;br /&gt;
        renderbottomtexture - boolean&lt;br /&gt;
        skyfadetime - float&lt;br /&gt;
        skysolidcolor - string&lt;br /&gt;
        useskytextures - boolean&lt;br /&gt;
        windeffectprecipitation - boolean&lt;br /&gt;
        windvelocity - string&lt;br /&gt;
        getwindowvelocity() - returns string&lt;br /&gt;
        realfog(bool, float, float, float) - specify if it should show, and max, min and speed values&lt;br /&gt;
        stormclouds(bool, float) - specify if it should show, and the duration&lt;br /&gt;
        stormcloudsshow(bool)&lt;br /&gt;
        stormfog(float, float) - percent and duration of the fog&lt;br /&gt;
        stormfogshow(bool)&lt;br /&gt;
&lt;br /&gt;
      TerrainBlock (SceneObject):&lt;br /&gt;
        repeatterrain - boolean&lt;br /&gt;
        squaresize - integer&lt;br /&gt;
        terrainfile - string&lt;br /&gt;
&lt;br /&gt;
      WaterBlock (SceneObject):&lt;br /&gt;
        density - float&lt;br /&gt;
        depthgradient - float&lt;br /&gt;
        distortgridscale - float&lt;br /&gt;
        distortmag - float&lt;br /&gt;
        distorttime - float&lt;br /&gt;
        envmapintensity - float&lt;br /&gt;
        envmapovertexture - string&lt;br /&gt;
        envmapundertexture - string&lt;br /&gt;
        flowangle - float&lt;br /&gt;
        flowrate - float&lt;br /&gt;
        ignoreterrain - boolean&lt;br /&gt;
        liquidtype - string&lt;br /&gt;
        maxalpha - float&lt;br /&gt;
        minalpha - float&lt;br /&gt;
        removewetedges - boolean&lt;br /&gt;
        shoredepth - float&lt;br /&gt;
        shoretexture - string&lt;br /&gt;
        specularcolor - string&lt;br /&gt;
        specularmasktex - string&lt;br /&gt;
        specularpower - float&lt;br /&gt;
        submergetexture0 - string&lt;br /&gt;
        submergetexture1 - string&lt;br /&gt;
        surfaceopacity - float&lt;br /&gt;
        surfaceparallax - float&lt;br /&gt;
        surfacetexture - string&lt;br /&gt;
        tessshore - float&lt;br /&gt;
        tesssurface - float&lt;br /&gt;
        usedepthmask - boolean&lt;br /&gt;
        viscosity - float&lt;br /&gt;
        wavemagnitude - float&lt;br /&gt;
&lt;br /&gt;
    SimGroup (SimObject):&lt;br /&gt;
      addcontrol(obj)&lt;br /&gt;
&lt;br /&gt;
      GameConnection (SimGroup):&lt;br /&gt;
        account - string [R]&lt;br /&gt;
        camera - object [R]&lt;br /&gt;
        communityname - string [R]&lt;br /&gt;
        isobserver - boolean [R]&lt;br /&gt;
        nick - string [R]&lt;br /&gt;
        objecttype() - returns string&lt;br /&gt;
        showprofile()&lt;br /&gt;
&lt;br /&gt;
    Sun (SimObject):&lt;br /&gt;
      ambient - string&lt;br /&gt;
      color - string&lt;br /&gt;
      direction - string&lt;br /&gt;
&lt;br /&gt;
  TDrawableObject (TGraalVar):&lt;br /&gt;
    layer - integer [R]&lt;br /&gt;
&lt;br /&gt;
    TBaddy (TDrawableObject):&lt;br /&gt;
      dir - integer&lt;br /&gt;
      headdir - integer&lt;br /&gt;
      mode - integer&lt;br /&gt;
      power - integer&lt;br /&gt;
      type - integer&lt;br /&gt;
      x - float&lt;br /&gt;
      y - float&lt;br /&gt;
&lt;br /&gt;
    TLevelObject (TDrawableObject):&lt;br /&gt;
      level - object [R]&lt;br /&gt;
      x - float&lt;br /&gt;
      y - float&lt;br /&gt;
      z - float&lt;br /&gt;
&lt;br /&gt;
      TExplosion (TLevelObject):&lt;br /&gt;
        dir - integer [R]&lt;br /&gt;
        power - integer [R]&lt;br /&gt;
        time - float [R]&lt;br /&gt;
&lt;br /&gt;
      TGaniObject (TLevelObject):&lt;br /&gt;
        alpha - float&lt;br /&gt;
        ani - object [R]&lt;br /&gt;
        aniparams - string [R]&lt;br /&gt;
        anistep - integer [R]&lt;br /&gt;
        attachedtoobject - object [R]&lt;br /&gt;
        attachid - integer [R]&lt;br /&gt;
        attachtype - integer [R]&lt;br /&gt;
        attr - object [R]&lt;br /&gt;
        blue - float&lt;br /&gt;
        body - string&lt;br /&gt;
        bodyimg - string&lt;br /&gt;
        colors - object [R]&lt;br /&gt;
        dir - integer&lt;br /&gt;
        gmap - object [R]&lt;br /&gt;
        green - float&lt;br /&gt;
        head - string&lt;br /&gt;
        headimg - string&lt;br /&gt;
        mode - integer - the object drawing mode (0 - add, 1 - transparent, 2 - subtract, 3 - daynight)&lt;br /&gt;
        red - float&lt;br /&gt;
        rotation - float&lt;br /&gt;
        shield - string&lt;br /&gt;
        sprite - integer&lt;br /&gt;
        stretchx - float&lt;br /&gt;
        stretchy - float&lt;br /&gt;
        sword - string&lt;br /&gt;
        zoom - float&lt;br /&gt;
        getimageforsprite(obj) - returns string&lt;br /&gt;
        getsprite(str) - returns object&lt;br /&gt;
        getspriteforspritepos(obj) - returns object&lt;br /&gt;
        setcoloreffect(float, float, float, float)&lt;br /&gt;
        seteffectmode(int)&lt;br /&gt;
&lt;br /&gt;
        TProjectile (TGaniObject):&lt;br /&gt;
          angle - float [R]&lt;br /&gt;
          fromplayer - object [R]&lt;br /&gt;
          horiz - boolean [R]&lt;br /&gt;
          params - object [R]&lt;br /&gt;
          speed - float [R]&lt;br /&gt;
          x - float [R]&lt;br /&gt;
          y - float [R]&lt;br /&gt;
          z - float [R]&lt;br /&gt;
          zspeed - float [R]&lt;br /&gt;
&lt;br /&gt;
        TServerHorse (TGaniObject):&lt;br /&gt;
          bombpower - integer&lt;br /&gt;
          bombs - integer&lt;br /&gt;
          bushes - integer&lt;br /&gt;
          dir - integer&lt;br /&gt;
          type - integer&lt;br /&gt;
&lt;br /&gt;
        TServerPlayer (TGaniObject):&lt;br /&gt;
          account - string [R]&lt;br /&gt;
          ap - integer&lt;br /&gt;
          attached - boolean [R]&lt;br /&gt;
          attachedtoobject - object&lt;br /&gt;
          bombs - integer&lt;br /&gt;
          chat - string&lt;br /&gt;
          communityname - string [R]&lt;br /&gt;
          darts - integer&lt;br /&gt;
          fullhearts - integer [R]&lt;br /&gt;
          glovepower - integer&lt;br /&gt;
          gralats - integer&lt;br /&gt;
          guild - string [R]&lt;br /&gt;
          headimg - string&lt;br /&gt;
          headset - integer&lt;br /&gt;
          hearts - float [R]&lt;br /&gt;
          horseimg - string [R]&lt;br /&gt;
          hp - float [R]&lt;br /&gt;
          id - integer [R]&lt;br /&gt;
          isadmin - boolean [R]&lt;br /&gt;
          isbuddy - boolean&lt;br /&gt;
          ischannel - boolean [R]&lt;br /&gt;
          ischannelopen - boolean [R]&lt;br /&gt;
          ischanneluser - boolean [R]&lt;br /&gt;
          isexternal - boolean [R]&lt;br /&gt;
          isfemale - boolean [R]&lt;br /&gt;
          isignored - boolean&lt;br /&gt;
          isignoring - boolean [R]&lt;br /&gt;
          isloggedin - boolean [R]&lt;br /&gt;
          ismale - boolean [R]&lt;br /&gt;
          ismuted - boolean [R]&lt;br /&gt;
          ismuting - boolean [R]&lt;br /&gt;
          language - string [R]&lt;br /&gt;
          languagedomain - string [R]&lt;br /&gt;
          mapicon - object [R] - of type TDrawingPanel, this is the icon that appears on the mini-map, usually updated by the playerlist script&lt;br /&gt;
          maxhp - integer [R]&lt;br /&gt;
          messagebubble - integer [R]&lt;br /&gt;
          mp - integer&lt;br /&gt;
          nick - string&lt;br /&gt;
          platform - string [R]&lt;br /&gt;
          playersindex - integer [R]&lt;br /&gt;
          rating - float [R]&lt;br /&gt;
          ratingd - float [R]&lt;br /&gt;
          rupees - integer - better use 'gralats'&lt;br /&gt;
          shieldimg - string - only there for compatibility with GS1, use just 'shield' instead&lt;br /&gt;
          shieldpower - integer [R]&lt;br /&gt;
          swordimg - string - only there for compatibility with GS1, use just 'sword' instead&lt;br /&gt;
          swordpower - integer [R]&lt;br /&gt;
          x - float&lt;br /&gt;
          y - float&lt;br /&gt;
          isguildpm() - returns boolean&lt;br /&gt;
          ismasspm() - returns boolean&lt;br /&gt;
          openexternalhistory() - returns boolean&lt;br /&gt;
          openexternalpm(bool) - returns boolean - as parameter specify 'true' if it should display the pm sent by the player, otherwise always open a blank PM window&lt;br /&gt;
          pmswaiting() - returns boolean&lt;br /&gt;
          showprofile()&lt;br /&gt;
&lt;br /&gt;
          TPlayer (TServerPlayer):&lt;br /&gt;
            ap - integer&lt;br /&gt;
            chat - string&lt;br /&gt;
            freezetime - float&lt;br /&gt;
            hearts - float&lt;br /&gt;
            horseimg - string&lt;br /&gt;
            hp - float&lt;br /&gt;
            hurt - boolean [R]&lt;br /&gt;
            hurtdx - float [R]&lt;br /&gt;
            hurtdy - float [R]&lt;br /&gt;
            hurted - boolean [R]&lt;br /&gt;
            hurtpower - float [R]&lt;br /&gt;
            isfemale - boolean [R]&lt;br /&gt;
            ismale - boolean [R]&lt;br /&gt;
            isobserver - boolean [R]&lt;br /&gt;
            letters - string&lt;br /&gt;
            map - boolean [R]&lt;br /&gt;
            nick - string [R]&lt;br /&gt;
            onhorse - boolean [R]&lt;br /&gt;
            online - boolean [R]&lt;br /&gt;
            paused - boolean [R]&lt;br /&gt;
            reading - boolean [R]&lt;br /&gt;
            shieldimg - string - same as 'shield', except that changing this also updates the shieldpower&lt;br /&gt;
            sprite - integer&lt;br /&gt;
            swimming - boolean [R]&lt;br /&gt;
            swordimg - string - same as 'sword', except that changing this also updates the swordpower&lt;br /&gt;
            weapon - object [R]&lt;br /&gt;
            weapons - object [R]&lt;br /&gt;
&lt;br /&gt;
          TServerNPC (TServerPlayer):&lt;br /&gt;
            actionplayer - integer [R]&lt;br /&gt;
            hearts - float&lt;br /&gt;
            height - float [R]&lt;br /&gt;
            horseimg - string&lt;br /&gt;
            hp - float&lt;br /&gt;
            hurtdx - float&lt;br /&gt;
            hurtdy - float&lt;br /&gt;
            image - string&lt;br /&gt;
            isblocking - boolean&lt;br /&gt;
            isblockingprojectiles - boolean&lt;br /&gt;
            layer - integer&lt;br /&gt;
            npcsindex - integer [R]&lt;br /&gt;
            peltwithblackstone - boolean [R]&lt;br /&gt;
            peltwithbush - boolean [R]&lt;br /&gt;
            peltwithnpc - boolean [R]&lt;br /&gt;
            peltwithsign - boolean [R]&lt;br /&gt;
            peltwithstone - boolean [R]&lt;br /&gt;
            peltwithvase - boolean [R]&lt;br /&gt;
            save - object [R]&lt;br /&gt;
            shieldpower - integer&lt;br /&gt;
            sprite - integer&lt;br /&gt;
            swordpower - integer&lt;br /&gt;
            visible - boolean&lt;br /&gt;
            width - float [R]&lt;br /&gt;
            x - float&lt;br /&gt;
            y - float&lt;br /&gt;
            blockagain()&lt;br /&gt;
            blockagainlocal()&lt;br /&gt;
            canbecarried()&lt;br /&gt;
            canbepulled()&lt;br /&gt;
            canbepushed()&lt;br /&gt;
            cannotbecarried()&lt;br /&gt;
            cannotbepulled()&lt;br /&gt;
            cannotbepushed()&lt;br /&gt;
            carryobject(str)&lt;br /&gt;
            changeimgcolors(int, float, float, float, float)&lt;br /&gt;
            changeimgmode(int, int)&lt;br /&gt;
            changeimgpart(int, int, int, int, int)&lt;br /&gt;
            changeimgvis(int, int)&lt;br /&gt;
            changeimgzoom(int, float)&lt;br /&gt;
            destroy()&lt;br /&gt;
            dontblock()&lt;br /&gt;
            dontblocklocal()&lt;br /&gt;
            drawaslight()&lt;br /&gt;
            drawoverplayer()&lt;br /&gt;
            drawunderplayer()&lt;br /&gt;
            findimg(int) - returns object&lt;br /&gt;
            hide()&lt;br /&gt;
            hideimg(int)&lt;br /&gt;
            hideimgs(int, int)&lt;br /&gt;
            hidelocal()&lt;br /&gt;
            hurt(int)&lt;br /&gt;
            lay(str)&lt;br /&gt;
            message(str)&lt;br /&gt;
            move(float, float, float, int)&lt;br /&gt;
            setbow(str)&lt;br /&gt;
            setcharani(str, str)&lt;br /&gt;
            setchargender(str)&lt;br /&gt;
            setimg(str)&lt;br /&gt;
            setimgpart(str, int, int, int, int)&lt;br /&gt;
            setshape(int, int, int)&lt;br /&gt;
            setshape2(int, int, obj)&lt;br /&gt;
            setzoomeffect(float)&lt;br /&gt;
            shootarrow(int)&lt;br /&gt;
            shootball()&lt;br /&gt;
            shootfireball(int)&lt;br /&gt;
            shootfireblast(int)&lt;br /&gt;
            shootnuke(int)&lt;br /&gt;
            show()&lt;br /&gt;
            showani(int, float, float, int, str) - returns object&lt;br /&gt;
            showani2(int, float, float, float, int, str) - returns object&lt;br /&gt;
            showcharacter()&lt;br /&gt;
            showimg(int, str, float, float) - returns object&lt;br /&gt;
            showimg2(int, str, float, float, float) - returns object&lt;br /&gt;
            showlocal()&lt;br /&gt;
            showpoly(int, obj) - returns object&lt;br /&gt;
            showpoly2(int, obj) - returns object&lt;br /&gt;
            showtext(int, float, float, str, str, str) - returns object&lt;br /&gt;
            showtext2(int, float, float, float, str, str, str) - returns object&lt;br /&gt;
            take(str)&lt;br /&gt;
            take2(int)&lt;br /&gt;
            takehorse(int)&lt;br /&gt;
            throwcarry()&lt;br /&gt;
            timereverywhere()&lt;br /&gt;
&lt;br /&gt;
            TServerWeapon (TServerNPC):&lt;br /&gt;
              isweapon - boolean [R]&lt;br /&gt;
&lt;br /&gt;
      TServerBomb (TLevelObject):&lt;br /&gt;
        power - integer&lt;br /&gt;
        time - float&lt;br /&gt;
&lt;br /&gt;
      TServerCarry (TLevelObject):&lt;br /&gt;
&lt;br /&gt;
      TServerChest (TLevelObject):&lt;br /&gt;
        isopen - boolean [R]&lt;br /&gt;
        item - string [R]&lt;br /&gt;
&lt;br /&gt;
      TServerExtra (TLevelObject):&lt;br /&gt;
        time - float [R]&lt;br /&gt;
        type - integer [R]&lt;br /&gt;
&lt;br /&gt;
      TServerFlying (TLevelObject):&lt;br /&gt;
        dir - integer [R]&lt;br /&gt;
        dx - float&lt;br /&gt;
        dy - float&lt;br /&gt;
        from - integer [R]&lt;br /&gt;
        type - integer [R]&lt;br /&gt;
&lt;br /&gt;
      TServerLeap (TLevelObject):&lt;br /&gt;
&lt;br /&gt;
      TServerSign (TLevelObject):&lt;br /&gt;
        text - string&lt;br /&gt;
&lt;br /&gt;
      TShowImg (TLevelObject):&lt;br /&gt;
        alpha - float&lt;br /&gt;
        ani - string&lt;br /&gt;
        attachnode - string&lt;br /&gt;
        attachoffset - string&lt;br /&gt;
        attachtoowner - boolean&lt;br /&gt;
        blue - float&lt;br /&gt;
        code - string - the old representation as 'font@style@text'&lt;br /&gt;
        dimension - integer&lt;br /&gt;
        dir - integer&lt;br /&gt;
        emitter - object [R]&lt;br /&gt;
        eulerrotation - string&lt;br /&gt;
        flashfile - string&lt;br /&gt;
        font - string&lt;br /&gt;
        green - float&lt;br /&gt;
        image - string&lt;br /&gt;
        imageindex - integer [R]&lt;br /&gt;
        is3dlight - boolean&lt;br /&gt;
        layer - integer&lt;br /&gt;
        mode - integer - the image drawing mode (0 - add, 1 - transparent, 2 - subtract, 3 - daynight)&lt;br /&gt;
        playerlook - boolean - if the animation should take it's head, body, sword, shield and attr[] from the owner (playerlook), set this to false if you want to set the images yourself by changing showimg.actor.head etc.&lt;br /&gt;
        polygon - object&lt;br /&gt;
        position - string&lt;br /&gt;
        red - float&lt;br /&gt;
        rotation - float&lt;br /&gt;
        shape - string&lt;br /&gt;
        shapeobject - object [R]&lt;br /&gt;
        spin - float&lt;br /&gt;
        stretchx - float&lt;br /&gt;
        stretchy - float&lt;br /&gt;
        style - string&lt;br /&gt;
        text - string&lt;br /&gt;
        x - float&lt;br /&gt;
        y - float&lt;br /&gt;
        z - float&lt;br /&gt;
        zoom - float&lt;br /&gt;
&lt;br /&gt;
  TDrawingPanel (TGraalVar):&lt;br /&gt;
    height - integer [R]&lt;br /&gt;
    isclear - boolean [R]&lt;br /&gt;
    parth - integer [R]&lt;br /&gt;
    partw - integer [R]&lt;br /&gt;
    partx - integer [R]&lt;br /&gt;
    party - integer [R]&lt;br /&gt;
    width - integer [R]&lt;br /&gt;
    clearall()&lt;br /&gt;
    clearrectangle(int, int, int, int) - x, y, width and height&lt;br /&gt;
    drawimage(int, int, str) - x, y, source image&lt;br /&gt;
    drawimagerectangle(int, int, str, int, int, int, int) - destination x and y, source image, source x,y,width and height&lt;br /&gt;
    drawimagestretched(int, int, int, int, str, int, int, int, int) - destination x,y,width and height, source image, source x,y,width and height&lt;br /&gt;
    saveimage(str)&lt;br /&gt;
&lt;br /&gt;
  Terraformer (TGraalVar):&lt;br /&gt;
    loadgrayscale(int, str) - returns boolean&lt;br /&gt;
    loadgreyscale(int, str) - returns boolean&lt;br /&gt;
    savegreyscale(int, str) - returns boolean&lt;br /&gt;
    setterrain(int) - returns boolean&lt;br /&gt;
&lt;br /&gt;
  TFrameDetail (TGraalVar):&lt;br /&gt;
    bordercolor - string&lt;br /&gt;
    borderenable - string&lt;br /&gt;
    bordermovable - string&lt;br /&gt;
    borderwidth - integer&lt;br /&gt;
    minextent - string&lt;br /&gt;
&lt;br /&gt;
  TGameObjectAttr (TGraalVar):&lt;br /&gt;
&lt;br /&gt;
  TGaniParam (TGraalVar):&lt;br /&gt;
&lt;br /&gt;
  TGraalAni (TGraalVar):&lt;br /&gt;
    continuous - boolean&lt;br /&gt;
    ganitype - string [R]&lt;br /&gt;
    loop - boolean&lt;br /&gt;
    movie - boolean&lt;br /&gt;
    setbackto - string&lt;br /&gt;
    singledirection - boolean&lt;br /&gt;
    addsprite(int) - returns object&lt;br /&gt;
    addstep() - returns object&lt;br /&gt;
    deletesprite(int)&lt;br /&gt;
    deletestep(int)&lt;br /&gt;
    getsprite(int) - returns object&lt;br /&gt;
    insertstep(int) - returns object&lt;br /&gt;
&lt;br /&gt;
  TGraalAniPart (TGraalVar):&lt;br /&gt;
    attr - integer&lt;br /&gt;
    dx - integer&lt;br /&gt;
    dy - integer&lt;br /&gt;
    param - integer&lt;br /&gt;
    sprite - object&lt;br /&gt;
&lt;br /&gt;
  TGraalAniSound (TGraalVar):&lt;br /&gt;
    delay - float&lt;br /&gt;
    dx - float&lt;br /&gt;
    dy - float&lt;br /&gt;
    sound - string&lt;br /&gt;
&lt;br /&gt;
  TGraalAniSprite (TGraalVar):&lt;br /&gt;
    alpha - float&lt;br /&gt;
    blue - float&lt;br /&gt;
    description - string&lt;br /&gt;
    green - float&lt;br /&gt;
    height - integer&lt;br /&gt;
    image - string&lt;br /&gt;
    imagetype - string [R]&lt;br /&gt;
    mode - integer&lt;br /&gt;
    red - float&lt;br /&gt;
    rotation - float&lt;br /&gt;
    spriteindex - integer&lt;br /&gt;
    stretchx - float&lt;br /&gt;
    stretchy - float&lt;br /&gt;
    width - integer&lt;br /&gt;
    x - integer&lt;br /&gt;
    y - integer&lt;br /&gt;
    zoom - float&lt;br /&gt;
    addattachment() - returns object&lt;br /&gt;
    deleteattachment(int)&lt;br /&gt;
    insertattachment(int) - returns object&lt;br /&gt;
&lt;br /&gt;
  TGraalAniStep (TGraalVar):&lt;br /&gt;
    delay - float&lt;br /&gt;
    addpos(int) - returns object&lt;br /&gt;
    deletepos(int, int)&lt;br /&gt;
    insertpos(int, int) - returns object&lt;br /&gt;
&lt;br /&gt;
  TGraalSpriteAttachment (TGraalVar):&lt;br /&gt;
    behind - boolean&lt;br /&gt;
    dx - integer&lt;br /&gt;
    dy - integer&lt;br /&gt;
    sprite - object&lt;br /&gt;
&lt;br /&gt;
  THTTPRequest (TGraalVar):&lt;br /&gt;
    address - string [R]&lt;br /&gt;
    contentlanguage - string [R]&lt;br /&gt;
    contentlength - integer [R]&lt;br /&gt;
    contenttype - string [R]&lt;br /&gt;
    downloadcomplete - boolean [R]&lt;br /&gt;
    file - string [R]&lt;br /&gt;
    fulldata - string [R]&lt;br /&gt;
    lastmodified - string [R]&lt;br /&gt;
    port - integer [R]&lt;br /&gt;
    returncode - integer [R]&lt;br /&gt;
    returnmessage - string [R]&lt;br /&gt;
    server - string [R]&lt;br /&gt;
    url - string [R]&lt;br /&gt;
&lt;br /&gt;
  TMovementRigid (TGraalVar):&lt;br /&gt;
    mass - float&lt;br /&gt;
&lt;br /&gt;
  TParticle (TGraalVar):&lt;br /&gt;
    angle - float&lt;br /&gt;
    lifetime - float&lt;br /&gt;
    movementvector - string&lt;br /&gt;
    sound - string&lt;br /&gt;
    speed - float&lt;br /&gt;
    zangle - float&lt;br /&gt;
&lt;br /&gt;
  TParticleEmitter (TGraalVar):&lt;br /&gt;
    attachposition - boolean&lt;br /&gt;
    autorotation - boolean&lt;br /&gt;
    checkbelowterrain - boolean&lt;br /&gt;
    clippingbox - string&lt;br /&gt;
    cliptoscreen - boolean&lt;br /&gt;
    continueafterdestroy - boolean&lt;br /&gt;
    currentparticlecount - integer [R]&lt;br /&gt;
    delaymax - float&lt;br /&gt;
    delaymin - float&lt;br /&gt;
    dropemitter - object [R]&lt;br /&gt;
    dropwateremitter - object [R]&lt;br /&gt;
    emissionoffset - string&lt;br /&gt;
    emitatterrainheight - boolean&lt;br /&gt;
    emitautomatically - boolean&lt;br /&gt;
    emittedparticles - integer [R]&lt;br /&gt;
    firstinfront - boolean&lt;br /&gt;
    isfrozen - boolean&lt;br /&gt;
    maxparticles - integer&lt;br /&gt;
    movementfactor - float&lt;br /&gt;
    nrofparticles - integer&lt;br /&gt;
    particle - object [R]&lt;br /&gt;
    particletypes - integer&lt;br /&gt;
    wraptoclippingbox - boolean&lt;br /&gt;
    addemitmodifier(str, float, float, str, str, float, float) - returns object&lt;br /&gt;
    addglobalmodifier(str, float, float, str, str, float, float) - returns object&lt;br /&gt;
    addlocalmodifier(str, float, float, str, str, float, float) - returns object&lt;br /&gt;
    advancetime(float)&lt;br /&gt;
    emit()&lt;br /&gt;
    emitat(str)&lt;br /&gt;
    removemodifiers()&lt;br /&gt;
    removeparticles()&lt;br /&gt;
&lt;br /&gt;
  TParticleModifier (TGraalVar):&lt;br /&gt;
    addmod(str, str, float, float)&lt;br /&gt;
&lt;br /&gt;
  TScriptFunction (TGraalVar):&lt;br /&gt;
&lt;br /&gt;
  TServerLevel (TGraalVar):&lt;br /&gt;
    compsdead - boolean [R]&lt;br /&gt;
    height - integer [R]&lt;br /&gt;
    isnopkzone - boolean [R]&lt;br /&gt;
    issparringzone - boolean [R]&lt;br /&gt;
    nopkzone - boolean [R] - same like 'isnopkzone'&lt;br /&gt;
    tilelayercount - integer&lt;br /&gt;
    width - integer [R]&lt;br /&gt;
    findareanpcs(float, float, float, float) - returns object - returns an array of all npcs at the specified rectangle (x,y,width,height)&lt;br /&gt;
    getmappartfile(float, float) - returns string&lt;br /&gt;
    hitcompu(int, int, float, float)&lt;br /&gt;
    putbomb(int, float, float)&lt;br /&gt;
    putcomp(str, float, float)&lt;br /&gt;
    putexplosion(int, float, float)&lt;br /&gt;
    putexplosion2(int, int, float, float)&lt;br /&gt;
    puthorse(str, float, float)&lt;br /&gt;
    putnewcomp(str, float, float, str, int)&lt;br /&gt;
    reflectarrow(int)&lt;br /&gt;
    removearrow(int)&lt;br /&gt;
    removebomb(int)&lt;br /&gt;
    removecompus()&lt;br /&gt;
    removeexplo(int)&lt;br /&gt;
    removehorse(int)&lt;br /&gt;
    removeitem(int)&lt;br /&gt;
    setz(int, int, int, int, float, float, float, float)&lt;br /&gt;
    shoot(float, float, float, float, float, float, str, str) - shoots a projectile with x,y,z,angle,zangle,strength,ani,aniparams&lt;br /&gt;
    testbomb(float, float) - returns integer&lt;br /&gt;
    testexplo(float, float) - returns integer&lt;br /&gt;
    testhorse(float, float) - returns integer&lt;br /&gt;
    testitem(float, float) - returns integer&lt;br /&gt;
    testnpc(float, float) - returns integer&lt;br /&gt;
    testsign(float, float) - returns integer&lt;br /&gt;
    tiletype(float, float) - returns integer&lt;br /&gt;
&lt;br /&gt;
  TServerLevelLink (TGraalVar):&lt;br /&gt;
    destlevel - string [R]&lt;br /&gt;
    destx - float [R]&lt;br /&gt;
    desty - float [R]&lt;br /&gt;
    height - float [R]&lt;br /&gt;
    width - float [R]&lt;br /&gt;
    x - float [R]&lt;br /&gt;
    y - float [R]&lt;br /&gt;
&lt;br /&gt;
  TShapeMaterial (TGraalVar):&lt;br /&gt;
    specularpower - integer&lt;br /&gt;
&lt;br /&gt;
  TShowImg_Values (TGraalVar):&lt;br /&gt;
    alpha - float&lt;br /&gt;
    blue - float&lt;br /&gt;
    green - float&lt;br /&gt;
    mode - integer - the image drawing mode (0 - add, 1 - transparent, 2 - subtract, 3 - daynight)&lt;br /&gt;
    red - float&lt;br /&gt;
    rotation - float&lt;br /&gt;
    spin - float&lt;br /&gt;
    stretchx - float&lt;br /&gt;
    stretchy - float&lt;br /&gt;
    zoom - float&lt;br /&gt;
&lt;br /&gt;
    TShowImg_Flash (TShowImg_Values):&lt;br /&gt;
      flash - object [R]&lt;br /&gt;
&lt;br /&gt;
    TShowImg_Gani (TShowImg_Values):&lt;br /&gt;
      actor - object [R]&lt;br /&gt;
&lt;br /&gt;
    TShowImg_Image (TShowImg_Values):&lt;br /&gt;
      height - float&lt;br /&gt;
      parth - integer&lt;br /&gt;
      partw - integer&lt;br /&gt;
      partx - integer&lt;br /&gt;
      party - integer&lt;br /&gt;
      width - float&lt;br /&gt;
&lt;br /&gt;
    TShowImg_Poly (TShowImg_Values):&lt;br /&gt;
      parth - integer&lt;br /&gt;
      partw - integer&lt;br /&gt;
      partx - integer&lt;br /&gt;
      party - integer&lt;br /&gt;
&lt;br /&gt;
    TShowImg_Shape (TShowImg_Values):&lt;br /&gt;
      lightcolor - string&lt;br /&gt;
      lightdirection - string&lt;br /&gt;
      shadowdirection - string&lt;br /&gt;
&lt;br /&gt;
    TShowImg_Text (TShowImg_Values):&lt;br /&gt;
      parth - integer&lt;br /&gt;
      partw - integer&lt;br /&gt;
      partx - integer&lt;br /&gt;
      party - integer&lt;br /&gt;
      shadowcolor - string&lt;br /&gt;
      shadowoffset - string&lt;br /&gt;
      textshadow - boolean&lt;br /&gt;
&lt;br /&gt;
  TStaticVar (TGraalVar):&lt;br /&gt;
    destroy()&lt;br /&gt;
&lt;br /&gt;
    Array (TStaticVar):&lt;br /&gt;
      initialize(params...)&lt;br /&gt;
&lt;br /&gt;
    Color (TStaticVar):&lt;br /&gt;
      initialize(obj)&lt;br /&gt;
      setrgb(int)&lt;br /&gt;
&lt;br /&gt;
    Date (TStaticVar):&lt;br /&gt;
      initialize(params...)&lt;br /&gt;
&lt;br /&gt;
    Math (TStaticVar):&lt;br /&gt;
      abs(float) - returns float&lt;br /&gt;
      floor(float) - returns integer&lt;br /&gt;
      random() - returns float&lt;br /&gt;
      sin(float) - returns float&lt;br /&gt;
      sqrt(float) - returns float&lt;br /&gt;
&lt;br /&gt;
    Sound (TStaticVar):&lt;br /&gt;
      initialize(params...)&lt;br /&gt;
&lt;br /&gt;
    String (TStaticVar):&lt;br /&gt;
      initialize(params...)&lt;br /&gt;
&lt;br /&gt;
  TTilesLayer (TGraalVar):&lt;br /&gt;
    alpha - float&lt;br /&gt;
    blue - float&lt;br /&gt;
    green - float&lt;br /&gt;
    layerindex - integer [R]&lt;br /&gt;
    offset - string&lt;br /&gt;
    red - float&lt;br /&gt;
    x - float&lt;br /&gt;
    y - float&lt;br /&gt;
    z - float&lt;br /&gt;
    updateboard(int, int, int, int)&lt;br /&gt;
&lt;br /&gt;
  TUpdatePackage (TGraalVar):&lt;br /&gt;
    accounts - object [R]&lt;br /&gt;
    description - string [R]&lt;br /&gt;
    downloadcomplete - boolean [R]&lt;br /&gt;
    downloadedsize - integer [R]&lt;br /&gt;
    filecount - integer [R]&lt;br /&gt;
    filedownloadedsize - integer [R]&lt;br /&gt;
    filename - string [R]&lt;br /&gt;
    filetotalsize - integer [R]&lt;br /&gt;
    isuninstalled - boolean [R]&lt;br /&gt;
    lastdownloadfile - string [R]&lt;br /&gt;
    localversion - float [R]&lt;br /&gt;
    mode - string [R]&lt;br /&gt;
    name - string [R]&lt;br /&gt;
    parent - object [R]&lt;br /&gt;
    platform - string [R]&lt;br /&gt;
    protectoverwrite - boolean [R]&lt;br /&gt;
    totalsize - integer [R]&lt;br /&gt;
    usechecksum - boolean [R]&lt;br /&gt;
    version - float [R]&lt;br /&gt;
    reinstall() - returns boolean&lt;br /&gt;
    uninstall() - returns boolean&lt;br /&gt;
    update() - returns boolean&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==GUI Objects==&lt;br /&gt;
GUI Objects are currently well documented starting here [[Creation/Dev/Script/Client/GuiControl]].&lt;br /&gt;
&lt;br /&gt;
==Global==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  $pref::audio::choosenvoicecodec - integer&lt;br /&gt;
  $pref::audio::microactivatebyvolume - boolean&lt;br /&gt;
  $pref::audio::microactivationlevel - integer&lt;br /&gt;
  $pref::audio::microinputdevice - integer&lt;br /&gt;
  $pref::audio::microon - boolean&lt;br /&gt;
  $pref::audio::microvolumefactor - integer&lt;br /&gt;
  $pref::audio::midivolume - integer&lt;br /&gt;
  $pref::audio::mp3volume - integer&lt;br /&gt;
  $pref::audio::radiovolume - integer&lt;br /&gt;
  $pref::audio::reversestereo - boolean&lt;br /&gt;
  $pref::audio::sfxvolume - integer&lt;br /&gt;
  $pref::audio::voicevolume - integer&lt;br /&gt;
  $pref::capture::allowbyscript - boolean [R]&lt;br /&gt;
  $pref::capture::area - string&lt;br /&gt;
  $pref::capture::audiobitrate - integer&lt;br /&gt;
  $pref::capture::disabledaynight - boolean&lt;br /&gt;
  $pref::capture::format - string&lt;br /&gt;
  $pref::capture::fps - integer&lt;br /&gt;
  $pref::capture::hideinterface - boolean&lt;br /&gt;
  $pref::capture::recordaudio - boolean&lt;br /&gt;
  $pref::capture::showmouse - boolean&lt;br /&gt;
  $pref::capture::size - string&lt;br /&gt;
  $pref::capture::videobitrate - integer&lt;br /&gt;
  $pref::graal::allowglobalpms - boolean&lt;br /&gt;
  $pref::graal::automapping - boolean&lt;br /&gt;
  $pref::graal::defaultfontname - string&lt;br /&gt;
  $pref::graal::defaultfontsize - integer&lt;br /&gt;
  $pref::graal::dontconnectlevels - boolean&lt;br /&gt;
  $pref::graal::dontloadlistheads - boolean&lt;br /&gt;
  $pref::graal::dontsavepasswords - boolean&lt;br /&gt;
  $pref::graal::dontsavepms - boolean&lt;br /&gt;
  $pref::graal::fixedport - boolean&lt;br /&gt;
  $pref::graal::fixedudpport - integer&lt;br /&gt;
  $pref::graal::language - string&lt;br /&gt;
  $pref::graal::limitnicknames - boolean&lt;br /&gt;
  $pref::graal::loadbuddylistfromserver - boolean&lt;br /&gt;
  $pref::graal::nicknamelimit - integer&lt;br /&gt;
  $pref::graal::nomassmessages - boolean&lt;br /&gt;
  $pref::graal::notoalls - boolean&lt;br /&gt;
  $pref::graal::noudp - boolean&lt;br /&gt;
  $pref::graal::showyourselfonbuddylists - boolean&lt;br /&gt;
  $pref::input::mousesensitivity - float&lt;br /&gt;
  $pref::interior::lockarrays - boolean&lt;br /&gt;
  $pref::video::defaultguistyle - string&lt;br /&gt;
  $pref::video::detailfactor - float&lt;br /&gt;
  $pref::video::fogdistance - float&lt;br /&gt;
  $pref::video::fullscreenmode - string&lt;br /&gt;
  $pref::video::resolution - integer&lt;br /&gt;
  $pref::video::screenshotformat - string&lt;br /&gt;
  $pref::video::visibledistance - float&lt;br /&gt;
  $pref::video::windowmode - string&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Fowlplay4</name></author>
	</entry>
	<entry>
		<id>https://graalonline.net/index.php?title=Creation/Dev/Script/Clientside_Functions&amp;diff=17961</id>
		<title>Creation/Dev/Script/Clientside Functions</title>
		<link rel="alternate" type="text/html" href="https://graalonline.net/index.php?title=Creation/Dev/Script/Clientside_Functions&amp;diff=17961"/>
		<updated>2011-02-28T22:32:54Z</updated>

		<summary type="html">&lt;p&gt;Fowlplay4: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Scripting Reference]]&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;2&amp;quot; width=&amp;quot;50%&amp;quot;&lt;br /&gt;
|[R]&lt;br /&gt;
| denotes it is read-only.&lt;br /&gt;
|-&lt;br /&gt;
|[3D]&lt;br /&gt;
| denotes it is a Graal3D function.&lt;br /&gt;
|-&lt;br /&gt;
|[opengl]&lt;br /&gt;
| denotes it is functional only in opengl mode.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Variables==&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;2&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
| '''Variable'''&lt;br /&gt;
|width=&amp;quot;100px&amp;quot;|'''Type'''&lt;br /&gt;
| '''Notes'''&lt;br /&gt;
|-&lt;br /&gt;
| allfeatures&lt;br /&gt;
| ''integer [R]''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| allplayerscount&lt;br /&gt;
| ''integer [R]''&lt;br /&gt;
| Returns the count of all players on your playerlist, including IRC bots.&lt;br /&gt;
|-&lt;br /&gt;
| allrenderobjecttypes&lt;br /&gt;
| ''integer [R]''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| allstats &lt;br /&gt;
| ''integer [R]''&lt;br /&gt;
| Used with showstats() in order to show all stats.&lt;br /&gt;
|-&lt;br /&gt;
| canspin&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| Returns true of false if the player has spin attack.&lt;br /&gt;
|-&lt;br /&gt;
| carriesblackstone&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| Returns whether the player is carrying a black stone.&lt;br /&gt;
|-&lt;br /&gt;
| carriesbush&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| Returns whether the player is carrying a bush.&lt;br /&gt;
|-&lt;br /&gt;
| carriesnpc&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| Returns whether the player is carrying an NPC&lt;br /&gt;
|-&lt;br /&gt;
| carriessign&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| Returns whether the player is carrying a sign.&lt;br /&gt;
|-&lt;br /&gt;
| carriesstone&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| Returns whether the player is carrying a stone.&lt;br /&gt;
|-&lt;br /&gt;
| carriesvase&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| Returns whether the player is carrying a vase.&lt;br /&gt;
|-&lt;br /&gt;
| downloadfile&lt;br /&gt;
| ''string [R]''&lt;br /&gt;
| Returns the currently downloaded file.&lt;br /&gt;
|-&lt;br /&gt;
| downloadpos&lt;br /&gt;
| ''integer [R]''&lt;br /&gt;
| Returns the position of the currently downloaded file.&lt;br /&gt;
|-&lt;br /&gt;
| downloadsize&lt;br /&gt;
| ''integer [R]''&lt;br /&gt;
| Returns the size of the currently downloaded file.&lt;br /&gt;
|-&lt;br /&gt;
| editingmission&lt;br /&gt;
| ''boolean''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| emoticonchar&lt;br /&gt;
| ''string [R]''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| focusx&lt;br /&gt;
| ''float [R]''&lt;br /&gt;
| Position of the camera in tile units.&lt;br /&gt;
|-&lt;br /&gt;
| focusy&lt;br /&gt;
| ''float [R]''&lt;br /&gt;
| Position of the camera in tile units.&lt;br /&gt;
|-&lt;br /&gt;
| ghostsnear&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| If a ghost(observer) is in the same level as the player.&lt;br /&gt;
|-&lt;br /&gt;
| graalplugincookie&lt;br /&gt;
| ''string [R]''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| graalversion&lt;br /&gt;
| ''float [R]''&lt;br /&gt;
| Version of Graal the player is using.&lt;br /&gt;
|-&lt;br /&gt;
| gravity&lt;br /&gt;
| ''float''&lt;br /&gt;
| The gravity value that effects how fast projectiles fall. It universally effects all projectiles.&lt;br /&gt;
|-&lt;br /&gt;
| installedlanguages&lt;br /&gt;
| ''string [R]''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| isapplicationactive&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| Is Graal window active?&lt;br /&gt;
|-&lt;br /&gt;
| iscarrying&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| Returns true of false if the player is carrying something.&lt;br /&gt;
|-&lt;br /&gt;
| isfocused&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| isgraal3d&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| isgraalplugin&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| isleader&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| Player was the first to enter the level.&lt;br /&gt;
|-&lt;br /&gt;
| isonmap&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| Player is on a map.&lt;br /&gt;
|-&lt;br /&gt;
| isopengl&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| Graal is in opengl mode.&lt;br /&gt;
|-&lt;br /&gt;
| isrecordingvideo&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| Player is currently recording(alt+6) Graal.&lt;br /&gt;
|-&lt;br /&gt;
| jpegquality&lt;br /&gt;
| ''integer''&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| isgraalplugin&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| lastdownloadfile&lt;br /&gt;
| ''string [R]''&lt;br /&gt;
| The last file downloaded.&lt;br /&gt;
|-&lt;br /&gt;
| leftmousebutton&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| If the left mouse button is pressed.&lt;br /&gt;
|-&lt;br /&gt;
| leftmousebuttonglobal&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| If the left mouse button is pressed. Returns whether mouse is in focus of GUIs or not.&lt;br /&gt;
|-&lt;br /&gt;
| levelorgx&lt;br /&gt;
| ''float [R]''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| levelorgy&lt;br /&gt;
| ''float [R]''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| lighteffectsenabled&lt;br /&gt;
| ''boolean''&lt;br /&gt;
| Whether the player has their lights enabled via options.&lt;br /&gt;
|-&lt;br /&gt;
| middlemousebutton&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| If the middle mouse button is pressed&lt;br /&gt;
|-&lt;br /&gt;
| middlemousebuttonglobal&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| If the middle mouse button is pressed. Returns whether mouse is in focus of GUIs or not.&lt;br /&gt;
|-&lt;br /&gt;
| mousebuttons &lt;br /&gt;
| ''integer [R]''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| mousebuttonsglobal&lt;br /&gt;
| ''integer [R]''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| mousepitch&lt;br /&gt;
| ''float [R] [3D]''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| mousescreenx &lt;br /&gt;
| ''integer''&lt;br /&gt;
| Position of the mouse in the Graal screen, in pixel units on the x-axis.&lt;br /&gt;
|-&lt;br /&gt;
| mousescreeny &lt;br /&gt;
| ''integer''&lt;br /&gt;
| Position of the mouse in the Graal screen, in pixel units on the y-axis.&lt;br /&gt;
|-&lt;br /&gt;
| mousewheeldelta&lt;br /&gt;
| ''integer [R]''&lt;br /&gt;
| How much the mouse wheel has been scrolled.&lt;br /&gt;
|-&lt;br /&gt;
| mousex&lt;br /&gt;
| ''float''&lt;br /&gt;
| Position of the mouse in the level, in tile units, on the x-axis.&lt;br /&gt;
|-&lt;br /&gt;
| mousey&lt;br /&gt;
| ''float''&lt;br /&gt;
| Position of the mouse in the level, in tile units, on the y-axis&lt;br /&gt;
|-&lt;br /&gt;
| mouseyaw&lt;br /&gt;
| ''float [R] [3D]''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| musiclen &lt;br /&gt;
| ''integer [R]''&lt;br /&gt;
| Length of current playing '''MP3'''&lt;br /&gt;
|-&lt;br /&gt;
| musicpos&lt;br /&gt;
| ''integer [R]''&lt;br /&gt;
| Position of current playing '''MP3'''&lt;br /&gt;
|-&lt;br /&gt;
| particleeffectsenabled&lt;br /&gt;
| ''boolean''&lt;br /&gt;
| If player has particles enabled in their options.&lt;br /&gt;
|-&lt;br /&gt;
| rightmousebutton &lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| If the right mouse button is pressed&lt;br /&gt;
|-&lt;br /&gt;
| rightmousebuttonglobal &lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| If the right mouse button is pressed. Returns whether mouse is in focus of GUIs or not.&lt;br /&gt;
|-&lt;br /&gt;
| screenheight&lt;br /&gt;
| ''integer [R]''&lt;br /&gt;
| Height of the Graal screen in pixel units.&lt;br /&gt;
|-&lt;br /&gt;
| screenwidth&lt;br /&gt;
| ''integer [R]''&lt;br /&gt;
| Width of the Graal screen in pixel units.&lt;br /&gt;
|-&lt;br /&gt;
| scriptedcontrols &lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| scriptedplayerlist&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| Whether the player has the scripted playerlist enabled.&lt;br /&gt;
|-&lt;br /&gt;
| scriptlogwritetoreadonly&lt;br /&gt;
| ''boolean''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| selectedlistplayers&lt;br /&gt;
| ''object''&lt;br /&gt;
| An object of all players selected on the playerlist.&lt;br /&gt;
|-&lt;br /&gt;
| selectedsword &lt;br /&gt;
| ''integer''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| selectedweapon &lt;br /&gt;
| ''integer''&lt;br /&gt;
| Index of the currently selected weapon.&lt;br /&gt;
|-&lt;br /&gt;
| servername&lt;br /&gt;
| ''string [R]''&lt;br /&gt;
| Name of the server.&lt;br /&gt;
|-&lt;br /&gt;
| serverstartconnect &lt;br /&gt;
| ''string''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| serverstartparams &lt;br /&gt;
| ''string''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| shotbybaddy&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| If the player is shot by a baddy(default) arrow.&lt;br /&gt;
|-&lt;br /&gt;
| shotbyplayer&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| If the player is shot by another players arrow.&lt;br /&gt;
|-&lt;br /&gt;
| showterraingrid&lt;br /&gt;
| ''boolean''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| spritesimage&lt;br /&gt;
| ''string''&lt;br /&gt;
| Filename of the currently set sprite image.&lt;br /&gt;
|-&lt;br /&gt;
| statusimage&lt;br /&gt;
| ''string''&lt;br /&gt;
| Filename of the currently set state image.&lt;br /&gt;
|-&lt;br /&gt;
| timevar&lt;br /&gt;
| ''integer [R].''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| timevar2&lt;br /&gt;
| ''float [R]''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| timevar3&lt;br /&gt;
| ''float [R] [3D]''&lt;br /&gt;
| Synchronized time which works on both server and client-side, precision is milliseconds.&lt;br /&gt;
|-&lt;br /&gt;
| wasshooted&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| If the player is shot by a default arrow.&lt;br /&gt;
|-&lt;br /&gt;
| waterheight&lt;br /&gt;
| ''float''&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| weapons&lt;br /&gt;
| ''object [R]''&lt;br /&gt;
| all the players weapons, this includes login inherited weapons.&lt;br /&gt;
|-&lt;br /&gt;
| weaponsenabled&lt;br /&gt;
| ''boolean''&lt;br /&gt;
| If the players weapons are enabled via disableweapons()/enableweapons().&lt;br /&gt;
|-&lt;br /&gt;
| weathereffectsenabled&lt;br /&gt;
| ''boolean''&lt;br /&gt;
| If weather is enabled in the players options.&lt;br /&gt;
|-&lt;br /&gt;
| worldclockstopped&lt;br /&gt;
| ''boolean''&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| worldhour &lt;br /&gt;
| ''integer''&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| worldminute &lt;br /&gt;
| ''float''&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| worldminutesofday &lt;br /&gt;
| ''float''&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| worldrealsecondsperday &lt;br /&gt;
| ''float''&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Functions=&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;2&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
| '''Variable'''&lt;br /&gt;
|width=&amp;quot;100px&amp;quot;|'''Type'''&lt;br /&gt;
| '''Notes'''&lt;br /&gt;
|-&lt;br /&gt;
| addcontrol(object)&lt;br /&gt;
|&lt;br /&gt;
| adds 'object' to the parent control.&lt;br /&gt;
|-&lt;br /&gt;
| addmaterialmapping(string, string)&lt;br /&gt;
| [3D]&lt;br /&gt;
| returns boolean.&lt;br /&gt;
|-&lt;br /&gt;
| addtiledef(string image, string prefix, int format)&lt;br /&gt;
| &lt;br /&gt;
| Adds a tileset definition with the supplied tileset image, level prefix and tileset format (0=pics1, 1=new world, 5=terrain).&lt;br /&gt;
|-&lt;br /&gt;
| addtiledef2(string image, string prefix, int x, int y)&lt;br /&gt;
| &lt;br /&gt;
| Overlays an image on the tileset with the supplied tileset image and level prefix. Parameters 'x' and 'y' represent the x and y position on the tileset of where to place the new image.&lt;br /&gt;
|-&lt;br /&gt;
| aindexof(float, array)&lt;br /&gt;
| &lt;br /&gt;
| Returns integer - the position of 'float' in the array.&lt;br /&gt;
|-&lt;br /&gt;
| arccos(float)&lt;br /&gt;
| &lt;br /&gt;
| Returns float - the arc cosine of 'float'.&lt;br /&gt;
|-&lt;br /&gt;
| arcsin(float)&lt;br /&gt;
| &lt;br /&gt;
| Returns float - the arc sine of 'float'.&lt;br /&gt;
|-&lt;br /&gt;
| attachplayertoobj(integer1, integer2)&lt;br /&gt;
| &lt;br /&gt;
| Attaches the player to the object with the matching ID where integer1 is the object type (currently only NPCs - 0) and integer2 is the ID of the desired object.&lt;br /&gt;
|-&lt;br /&gt;
| base64decode(string)&lt;br /&gt;
| &lt;br /&gt;
| Returns string - Decodes a base64 string.&lt;br /&gt;
|-&lt;br /&gt;
| base64encode(string)&lt;br /&gt;
| &lt;br /&gt;
| Returns string - Encodes string in to several characters of a 64 printable character set (A-Z, a-z, 0-9, + and /, while &amp;quot;=&amp;quot; is a special suffix code)&lt;br /&gt;
|-&lt;br /&gt;
| boxcontains(string, string)&lt;br /&gt;
| &lt;br /&gt;
| returns boolean.&lt;br /&gt;
|-&lt;br /&gt;
| boxcontainsvector(string, string)&lt;br /&gt;
| &lt;br /&gt;
| returns boolean&lt;br /&gt;
|-&lt;br /&gt;
| boxintersect(string, string)&lt;br /&gt;
| &lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| boxoverlaps(string, string)&lt;br /&gt;
| &lt;br /&gt;
| returns boolean&lt;br /&gt;
|-&lt;br /&gt;
| boxscale(string, string)&lt;br /&gt;
| &lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| callnpc(int index, string function)&lt;br /&gt;
| &lt;br /&gt;
| Calls a function from an NPC where 'index' is the NPC's index and 'function' is the function name.&lt;br /&gt;
|-&lt;br /&gt;
| callweapon(int index, string function)&lt;br /&gt;
| &lt;br /&gt;
| Calls a function from a weapon where 'index' is the weapon's index and 'function' is the function name.&lt;br /&gt;
|-&lt;br /&gt;
| castray({x,y,x}, {x,y,z}, string type)&lt;br /&gt;
| [3D]&lt;br /&gt;
| returns object - specify the start and end of the ray, and the object types (e.g. &amp;quot;staticts,terrain,interior&amp;quot;)&lt;br /&gt;
|-&lt;br /&gt;
| checksum(string)&lt;br /&gt;
| &lt;br /&gt;
| returns float&lt;br /&gt;
|-&lt;br /&gt;
| contains(string2, string1)&lt;br /&gt;
| &lt;br /&gt;
| returns boolean - True if string1 is contained within string2.&lt;br /&gt;
|-&lt;br /&gt;
| copystrings(string, string)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| cursoroff()&lt;br /&gt;
| [opengl]&lt;br /&gt;
| Disables the visible mouse cursor.&lt;br /&gt;
|-&lt;br /&gt;
| cursoron()&lt;br /&gt;
| [opengl]&lt;br /&gt;
| Enables the visible mouse cursor.&lt;br /&gt;
|-&lt;br /&gt;
| degtorad(float)&lt;br /&gt;
| &lt;br /&gt;
| returns float - Converts angle measurements of degrees to radians&lt;br /&gt;
|-&lt;br /&gt;
| detachplayer()&lt;br /&gt;
| &lt;br /&gt;
| Detaches a player from an attached object.&lt;br /&gt;
|-&lt;br /&gt;
| disabledefmovement()&lt;br /&gt;
| &lt;br /&gt;
| Disables the default movement system and controls(including weapons, sword, grab. Does not include Q-menu, pause, map...).&lt;br /&gt;
|-&lt;br /&gt;
| disablemap()&lt;br /&gt;
| &lt;br /&gt;
| Disables the default map (M).&lt;br /&gt;
|-&lt;br /&gt;
| disablepause()&lt;br /&gt;
| &lt;br /&gt;
| Disables the default pause (P).&lt;br /&gt;
|-&lt;br /&gt;
| disableselectweapons()&lt;br /&gt;
| &lt;br /&gt;
| Disables the default Q-menu (Q).&lt;br /&gt;
|-&lt;br /&gt;
| disableweapons()&lt;br /&gt;
| &lt;br /&gt;
| Disables the default sword (S) and weapons (D).&lt;br /&gt;
|-&lt;br /&gt;
| echo(string)&lt;br /&gt;
| &lt;br /&gt;
| echos 'string' to the debug window(F2).&lt;br /&gt;
|-&lt;br /&gt;
| enabledefmovement()&lt;br /&gt;
| &lt;br /&gt;
| Enables the default movement system.&lt;br /&gt;
|-&lt;br /&gt;
| [[Creation/Dev/Script/Functions/enablefeatures(int)|enablefeatures(int)]]&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| enablemap()&lt;br /&gt;
| &lt;br /&gt;
| Enables the default map system(M).&lt;br /&gt;
|-&lt;br /&gt;
| enablepause()&lt;br /&gt;
| &lt;br /&gt;
| Enables the default pause system(P).&lt;br /&gt;
|-&lt;br /&gt;
| enableselectweapons()&lt;br /&gt;
| &lt;br /&gt;
| Enables the default Q-menu(Q).&lt;br /&gt;
|-&lt;br /&gt;
| enableweapons()&lt;br /&gt;
| &lt;br /&gt;
| Enables the default sword(S) and weapons(D).&lt;br /&gt;
|-&lt;br /&gt;
| escapestring(string)&lt;br /&gt;
| &lt;br /&gt;
| returns string - adds \\ in front of &amp;quot;, ' and \\, and removes non-printable characters&lt;br /&gt;
|-&lt;br /&gt;
| explodebomb(integer)&lt;br /&gt;
| &lt;br /&gt;
| explodes the bomb with the id of 'integer'.&lt;br /&gt;
|-&lt;br /&gt;
| extractfilebase(string)&lt;br /&gt;
| &lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| extractfileext(string)&lt;br /&gt;
| &lt;br /&gt;
| Takes in a file name, and returns its extension. &lt;br /&gt;
|-&lt;br /&gt;
| extractfilepath(string)&lt;br /&gt;
| &lt;br /&gt;
| returns string &lt;br /&gt;
|-&lt;br /&gt;
| fileexists(string)&lt;br /&gt;
| &lt;br /&gt;
| returns boolean of whether the file 'str' exists in the players Graal/ directory(does not search subfolders).&lt;br /&gt;
|-&lt;br /&gt;
| filesize(string)&lt;br /&gt;
| &lt;br /&gt;
| Returns the size(int) of the file 'string' in the players Graal/ directory(does not search subfolders).&lt;br /&gt;
|-&lt;br /&gt;
| fileupdate(string)&lt;br /&gt;
| &lt;br /&gt;
| returns boolean&lt;br /&gt;
|-&lt;br /&gt;
| findani(string)&lt;br /&gt;
| &lt;br /&gt;
| returns object&lt;br /&gt;
|-&lt;br /&gt;
| findfiles(string, integer)&lt;br /&gt;
| &lt;br /&gt;
| returns object&lt;br /&gt;
|-&lt;br /&gt;
| findlevel(string)&lt;br /&gt;
| &lt;br /&gt;
| returns object&lt;br /&gt;
|-&lt;br /&gt;
| findnearestplayer(float1, float2)&lt;br /&gt;
| &lt;br /&gt;
| Returns the closest player's object relevant to float1 and float2.&lt;br /&gt;
|-&lt;br /&gt;
| findnearestplayers(float, float)&lt;br /&gt;
| &lt;br /&gt;
| Returns the closest players' object relevant to float1 and float2.&lt;br /&gt;
|-&lt;br /&gt;
| findnpcbyid(integer)&lt;br /&gt;
|&lt;br /&gt;
| Returns the NPC object with the ID of 'int'.&lt;br /&gt;
|-&lt;br /&gt;
| findpathinarray(obj1, obj2, obj3, obj4, obj5, int, int, int)&lt;br /&gt;
|&lt;br /&gt;
| Returns object - Simple path-finding: Obj1 being tiles that allow walking, Obj2 being tiles that don't allow walking, Obj3; tiles that shouldn't be allowed to walked on, Obj4; tiles that are able to be walked on, Obj5; tiles where we may stop. Integers are relevant to the startx, starty and maximum path length. - Arrays for allowed/non-allowed tiles are only checked if they aren't null.&lt;br /&gt;
|-&lt;br /&gt;
| findplayer(string)&lt;br /&gt;
|&lt;br /&gt;
| Returns the player object with the account equal to string.&lt;br /&gt;
|-&lt;br /&gt;
| findplayerbycommunityname(string)&lt;br /&gt;
|&lt;br /&gt;
| Returns the player object with the community name equal to string.&lt;br /&gt;
|-&lt;br /&gt;
| findplayerbyid(integer)&lt;br /&gt;
|&lt;br /&gt;
| Returns the player object with the ID equal to integer.&lt;br /&gt;
|-&lt;br /&gt;
| findweapon(string)&lt;br /&gt;
|&lt;br /&gt;
| Returns the weapon object with the name equal to string.&lt;br /&gt;
|-&lt;br /&gt;
| format(string, string, ...)&lt;br /&gt;
|&lt;br /&gt;
| See [[Creation/Dev/Output_Methods#format.28.29_function|format()]]. &lt;br /&gt;
|- &lt;br /&gt;
| format2(string, array)&lt;br /&gt;
| &lt;br /&gt;
| Like format(), except that this expects the format string and an array of variables instead of passing the variables as separate parameters.&lt;br /&gt;
|-&lt;br /&gt;
| freefileresources(string)&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| freezeplayer(float)&lt;br /&gt;
|&lt;br /&gt;
| Freezes the player for the number of seconds specified by float.&lt;br /&gt;
|-&lt;br /&gt;
| get3dobjectat(float, float, boolean)&lt;br /&gt;
| [3D]&lt;br /&gt;
| Gets the 3d object at the specified screen position, third parameter true if it should do box collision.&lt;br /&gt;
|-&lt;br /&gt;
| get3dobjectatmouse(boolean)&lt;br /&gt;
| [3D]&lt;br /&gt;
| Gets the 3d object at the mouse.  Parameter true if it should do box collision.&lt;br /&gt;
|-&lt;br /&gt;
| get3dobjectbyray(string, string)&lt;br /&gt;
| [3D]&lt;br /&gt;
| returns object&lt;br /&gt;
|-&lt;br /&gt;
| get3dobjectsbybox(string, string)&lt;br /&gt;
| [3D]&lt;br /&gt;
| 1st parameter defines the box {minx,miny,minz, maxx,maxy,maxz}.  Second parameter specifies the type of object to find (e.g. &amp;quot;staticts,terrain,interior&amp;quot;)&lt;br /&gt;
|-&lt;br /&gt;
| get3dscreenposition(string, boolean)&lt;br /&gt;
| [3D]&lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| getanglesfromvector({x, y, z})&lt;br /&gt;
|&lt;br /&gt;
| Returns an array that contains the angles the 3D vector {x, y, z} makes with the X-Y and X-Z axes.&lt;br /&gt;
|-&lt;br /&gt;
| getascii(string)&lt;br /&gt;
|&lt;br /&gt;
| Returns the [http://www.asciitable.com/ ascii] code for string.&lt;br /&gt;
|-&lt;br /&gt;
| getbasepackage()&lt;br /&gt;
|&lt;br /&gt;
| returns object&lt;br /&gt;
|-&lt;br /&gt;
| getboxcenter(string)&lt;br /&gt;
|&lt;br /&gt;
| Returns an array containing the center of a 3D box specified by string ({x0,y0,z0,x1,y1,z1,...}).&lt;br /&gt;
|-&lt;br /&gt;
| getdesktopresolution()&lt;br /&gt;
|&lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| getdisplaydevicelist()&lt;br /&gt;
|&lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| getdownloadedupdatepackagesize()&lt;br /&gt;
|&lt;br /&gt;
| Returns the size of the downloaded update package.&lt;br /&gt;
|-&lt;br /&gt;
| getdownloadingpackage()&lt;br /&gt;
|&lt;br /&gt;
| Returns a reference to current update package being downloaded.&lt;br /&gt;
|-&lt;br /&gt;
| getdownloadingpackagescount()&lt;br /&gt;
|&lt;br /&gt;
| Returns a count of the number of update packages to download.&lt;br /&gt;
|-&lt;br /&gt;
| getdropz(string)&lt;br /&gt;
|&lt;br /&gt;
| returns float&lt;br /&gt;
|-&lt;br /&gt;
| getExtension(string)&lt;br /&gt;
|&lt;br /&gt;
| This function is the same as extractFileExt().  Takes in a file name, and returns its extension.&lt;br /&gt;
|-&lt;br /&gt;
| getfilemodtime(string)&lt;br /&gt;
|&lt;br /&gt;
| Returns a timestamp of when the file was last modified (in unix time compatible to timevar2). This function accepts both exact file path and plain file name.&lt;br /&gt;
|-&lt;br /&gt;
| gethttprequest(string, integer, string)&lt;br /&gt;
| &lt;br /&gt;
| returns object (This function is the same as requestHttp())&lt;br /&gt;
|-&lt;br /&gt;
| getimgheight(string)&lt;br /&gt;
|&lt;br /&gt;
| Returns the height (in pixels) of the filename indicated by string.&lt;br /&gt;
|-&lt;br /&gt;
| getimgpixel(string, integer, integer)&lt;br /&gt;
|&lt;br /&gt;
| returns object&lt;br /&gt;
|-&lt;br /&gt;
| getimgwidth(string)&lt;br /&gt;
|&lt;br /&gt;
| Returns the width(in pixels) of the filename indicated by string.&lt;br /&gt;
|-&lt;br /&gt;
| getkeycode(string)&lt;br /&gt;
|&lt;br /&gt;
| Returns the keycode of the key indicated by string.  The keycode returned can be used in keydown2().&lt;br /&gt;
|-&lt;br /&gt;
| getloginaccountname()&lt;br /&gt;
|&lt;br /&gt;
| Presumably used for the login server.  Use player.account instead.&lt;br /&gt;
|-&lt;br /&gt;
| getmapx(string)&lt;br /&gt;
| &lt;br /&gt;
| Gets the x coordinate location in the gmap of the level indicated by string.  The top-left level starts at (0, 0).&lt;br /&gt;
|-&lt;br /&gt;
| getmapy(string)&lt;br /&gt;
|&lt;br /&gt;
| Gets the y coordinate location in the gmap of the level indicated by string.  The top-left level starts at (0, 0).&lt;br /&gt;
|-&lt;br /&gt;
| getmusicfilename()&lt;br /&gt;
|&lt;br /&gt;
| Returns the filename of the music currently playing.&lt;br /&gt;
|-&lt;br /&gt;
| getmusicstatus()&lt;br /&gt;
|&lt;br /&gt;
| Returns the status of the music currently playing.&lt;br /&gt;
|-&lt;br /&gt;
| getmusictags()&lt;br /&gt;
|&lt;br /&gt;
| Returns the tags of the music currently playing.  This function can be used to retrieve the title and artist info of the music.&lt;br /&gt;
|-&lt;br /&gt;
| getnearestplayer(float, float)&lt;br /&gt;
|&lt;br /&gt;
| Deprecated.  Use findnearestplayer() instead.&lt;br /&gt;
|-&lt;br /&gt;
| getnearestplayers(float, float)&lt;br /&gt;
|&lt;br /&gt;
| Deprecated.  Use findnearestplayers() instead.&lt;br /&gt;
|-&lt;br /&gt;
| getpackagesdownloadcomplete()&lt;br /&gt;
|&lt;br /&gt;
| Returns 'true' if the package downloads are complete.&lt;br /&gt;
|-&lt;br /&gt;
| getpackagesdownloaded()&lt;br /&gt;
|&lt;br /&gt;
| Returns 'true' if the most recent packages are already downloaded.&lt;br /&gt;
|-&lt;br /&gt;
| getplatform()&lt;br /&gt;
|&lt;br /&gt;
| Returns the platform that the player is using.  (i.e. windows, mac, or linux)&lt;br /&gt;
|-&lt;br /&gt;
| getresolutionlist(string)&lt;br /&gt;
|&lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| getservername()&lt;br /&gt;
|&lt;br /&gt;
| Returns the name of the server the player is currently connected to.&lt;br /&gt;
|-&lt;br /&gt;
| getstringkeys(string)&lt;br /&gt;
|&lt;br /&gt;
| Returns an array of the variables that begins with the supplied string.&lt;br /&gt;
|-&lt;br /&gt;
| getterraintexture(float, float)&lt;br /&gt;
|&lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| getterraintextureindex(float, float)&lt;br /&gt;
|&lt;br /&gt;
| returns integer&lt;br /&gt;
|-&lt;br /&gt;
| gettextheight(float zoom, string style, string font)&lt;br /&gt;
|&lt;br /&gt;
| returns integer - The height in pixels of the text with the given zoom, style and font.&lt;br /&gt;
|-&lt;br /&gt;
| gettextwidth(float zoom, string style, string font, string text)&lt;br /&gt;
|&lt;br /&gt;
| returns integer - The width of the text with the given zoom, style, font and text.&lt;br /&gt;
|-&lt;br /&gt;
| gettileset()&lt;br /&gt;
|&lt;br /&gt;
| returns string - the current main tileset (pics1.png, picso.png etc.)&lt;br /&gt;
|-&lt;br /&gt;
| gettilesettype()&lt;br /&gt;
|&lt;br /&gt;
| returns integer - the current tileset type (pics1.png:0, picso.png:5 etc.)&lt;br /&gt;
|-&lt;br /&gt;
| gettotalupdatepackagesize()&lt;br /&gt;
|&lt;br /&gt;
| returns integer - The total size of the update packages.&lt;br /&gt;
|-&lt;br /&gt;
| getupdatepackage(string name)&lt;br /&gt;
|&lt;br /&gt;
| returns object - A reference to the update package with the given name.&lt;br /&gt;
|-&lt;br /&gt;
| getvectorfromangles(float, float)&lt;br /&gt;
|&lt;br /&gt;
| returns string&lt;br /&gt;
|- &lt;br /&gt;
| getz(float, float)&lt;br /&gt;
|&lt;br /&gt;
| returns float&lt;br /&gt;
|-&lt;br /&gt;
| graalcontrolhasfocus(bool)&lt;br /&gt;
|&lt;br /&gt;
| returns boolean - Whether or not the graal control has focus.  Parameter says if it should also check if the chat bar has the focus&lt;br /&gt;
|-&lt;br /&gt;
| hideplayer(float time)&lt;br /&gt;
|&lt;br /&gt;
| Hides player for the specified amount of time.&lt;br /&gt;
|-&lt;br /&gt;
| hidesword(float time)&lt;br /&gt;
|&lt;br /&gt;
| Hides the player's sword for the specified amount of time.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;  hitnpc(int, float, float, float)&lt;br /&gt;
  hitobjects(float, float, float)&lt;br /&gt;
  hitplayer(int, float, float, float)&lt;br /&gt;
  isadminguild(str) - returns boolean&lt;br /&gt;
  isclassloaded(str) - returns boolean&lt;br /&gt;
  iscursoron() - returns boolean&lt;br /&gt;
  isdevicefullscreenonly(str) - returns boolean&lt;br /&gt;
  isdownloading(str) - returns boolean - checks if a file is currently downloaded or requested from the server&lt;br /&gt;
  isdownloadingfiles() - returns boolean - checks if Graal is currently downloading or requesting files from the server&lt;br /&gt;
  isfullscreenmode() - returns boolean&lt;br /&gt;
  isimgpixeltransparent(str, int, int) - returns boolean&lt;br /&gt;
  isimgrectangletransparent(str, int, int, int, int) - returns boolean&lt;br /&gt;
  ismusicplaying() - returns boolean&lt;br /&gt;
  isobject(str) - returns boolean&lt;br /&gt;
  issoundplaying(str) - returns boolean&lt;br /&gt;
  keydown(int) - returns boolean&lt;br /&gt;
  keydown2(int, bool) - returns boolean&lt;br /&gt;
  keydown2global(int, bool) - returns boolean&lt;br /&gt;
  keydownglobal(int) - returns boolean&lt;br /&gt;
  keyname(int) - returns string&lt;br /&gt;
  lay2(str, float, float)&lt;br /&gt;
  lightscene() - returns boolean&lt;br /&gt;
  loadclass(str)&lt;br /&gt;
  loadmap(str)&lt;br /&gt;
  loadtranslation(str)&lt;br /&gt;
  lowercase(str) - returns string&lt;br /&gt;
  ltmfs(bool)&lt;br /&gt;
  ltmmax(float, float)&lt;br /&gt;
  ltmmin(float, float)&lt;br /&gt;
  makescreenshot2(str, int, float, float, float, int, int)&lt;br /&gt;
  matrixcreate(str, str) - returns string&lt;br /&gt;
  matrixcreatefromeuler(str) - returns string&lt;br /&gt;
  matrixmulpoint(str, str) - returns string&lt;br /&gt;
  matrixmultiply(str, str) - returns string&lt;br /&gt;
  matrixmulvector(str, str) - returns string&lt;br /&gt;
  md5(str) - returns string&lt;br /&gt;
  noplayerkilling()&lt;br /&gt;
  onwall(float, float) - returns boolean&lt;br /&gt;
  onwall2(float, float, float, float) - returns boolean&lt;br /&gt;
  onwater(float, float) - returns boolean&lt;br /&gt;
  onwater2(float, float, float, float) - returns boolean&lt;br /&gt;
  opengraalurl(str)&lt;br /&gt;
  openurl(str)&lt;br /&gt;
  openurl2(str, int, int)&lt;br /&gt;
  play(str)&lt;br /&gt;
  play2(str, float, float, float)&lt;br /&gt;
  play3d(str, bool, str, str)&lt;br /&gt;
  playlooped(str)&lt;br /&gt;
  playlooped2(str, float, float, float)&lt;br /&gt;
  popdialog()&lt;br /&gt;
  pushdialog(obj)&lt;br /&gt;
  putleaps(int, float, float)&lt;br /&gt;
  radtodeg(float) - returns float&lt;br /&gt;
  randomstring(str) - returns string&lt;br /&gt;
  removetiledefs(str)&lt;br /&gt;
  replaceani(str, str)&lt;br /&gt;
  requestfiledeletion(str)&lt;br /&gt;
  requestfilerename(str, str)&lt;br /&gt;
  requestfilesmove(str, str)&lt;br /&gt;
  requesthttp(str, int, str) - returns object&lt;br /&gt;
  requesttext(str, str)&lt;br /&gt;
  requesturl(str) - returns object&lt;br /&gt;
  resetfocus()&lt;br /&gt;
  rotationadd(str, str) - returns string&lt;br /&gt;
  rotationaddeuler(str, str) - returns string&lt;br /&gt;
  rotationfromeuler(str) - returns string&lt;br /&gt;
  rotationsub(str, str) - returns string&lt;br /&gt;
  rotationtoeuler(str) - returns string&lt;br /&gt;
  rungarbagecollector()&lt;br /&gt;
  savelog(str)&lt;br /&gt;
  say(int)&lt;br /&gt;
  say2(str)&lt;br /&gt;
  screenx(float, float) - returns integer&lt;br /&gt;
  screeny(float, float) - returns integer&lt;br /&gt;
  selectfilefordownload(str) - opens the select-file-dialog for the download location of files (from scripted RC)&lt;br /&gt;
  selectfileforupload() - opens the select-file-dialog for uploading of files (into scripted RC)&lt;br /&gt;
  sendrpgmessage(str)&lt;br /&gt;
  sendtext(str, str, params...)&lt;br /&gt;
  sendtorc(str)&lt;br /&gt;
  serverwarp(str)&lt;br /&gt;
  setani(str, str)&lt;br /&gt;
  setbeltcolor(str)&lt;br /&gt;
  setcoatcolor(str)&lt;br /&gt;
  setcontentcontrol(obj)&lt;br /&gt;
  setcursor2(str)&lt;br /&gt;
  seteffect(float, float, float, float)&lt;br /&gt;
  setfocus(float, float)&lt;br /&gt;
  setfogcolors(obj)&lt;br /&gt;
  setgender(str)&lt;br /&gt;
  sethead(str)&lt;br /&gt;
  setinteriorrendermode(int)&lt;br /&gt;
  setletters(str)&lt;br /&gt;
  setmap(str, str, float, float) - sets a text map (you can see the tiles of other levels but not the npcs), parameters are text file with level names, the map image (not used anymore), default x and y for the head icons; use gmaps if possible instead of this&lt;br /&gt;
  setminimap(str, str, float, float) - parameters are a text file with level names, the image, default x and y; use gmaps if possible instead of this&lt;br /&gt;
  setmusicvolume(float, float)&lt;br /&gt;
  setplayerdir(str)&lt;br /&gt;
  setshield(str, int)&lt;br /&gt;
  setshoecolor(str)&lt;br /&gt;
  setshootparams(str)&lt;br /&gt;
  setskincolor(str)&lt;br /&gt;
  setskybandcolors(obj)&lt;br /&gt;
  setskybandsizes(obj)&lt;br /&gt;
  setsleevecolor(str)&lt;br /&gt;
  setspritesimage(str)&lt;br /&gt;
  setstatusimage(str)&lt;br /&gt;
  setsuncolors(obj)&lt;br /&gt;
  setsword(str, int)&lt;br /&gt;
  setterrainrendermode(int)&lt;br /&gt;
  showstats(int)&lt;br /&gt;
  spyfire(int, int)&lt;br /&gt;
  startrecordvideo() - returns boolean&lt;br /&gt;
  stopmidi() - same as stopmusic(), kept for compatibility&lt;br /&gt;
  stopmusic()&lt;br /&gt;
  stoprecordvideo() - returns boolean&lt;br /&gt;
  stopsound(str)&lt;br /&gt;
  strcmp(str, str) - returns integer&lt;br /&gt;
  strequals(str, str) - returns boolean&lt;br /&gt;
  switchtoopengl()&lt;br /&gt;
  synctimeofday(float, float)&lt;br /&gt;
  takeplayercarry()&lt;br /&gt;
  takeplayerhorse()&lt;br /&gt;
  testplayer(float, float) - returns integer&lt;br /&gt;
  trace(str) - same as echo()&lt;br /&gt;
  triggeraction(float, float, str, params...)&lt;br /&gt;
  triggerserver(str, str)&lt;br /&gt;
  update3dterrain(float, float, float, float)&lt;br /&gt;
  updateboard(int, int, int, int)&lt;br /&gt;
  updateterrain()&lt;br /&gt;
  updatevisibledistance()&lt;br /&gt;
  uploadfile(str) - uploads a file, you must provide the full path provided by a onDropFiles() event, also this will only work if the scripted RC has currently a file browser window open; once the file is uploaded an onFilesUploaded event will be invoked&lt;br /&gt;
  uppercase(str) - returns string&lt;br /&gt;
  vectoradd(str, str) - returns string&lt;br /&gt;
  vectorcross(str, str) - returns string&lt;br /&gt;
  vectordist(str, str) - returns float&lt;br /&gt;
  vectordot(str, str) - returns float&lt;br /&gt;
  vectorlen(str) - returns float&lt;br /&gt;
  vectornormalize(str) - returns string&lt;br /&gt;
  vectororthobasis(str) - returns string&lt;br /&gt;
  vectorscale(str, float) - returns string&lt;br /&gt;
  vectorsub(str, str) - returns string&lt;br /&gt;
  worldx(float, float) - returns float&lt;br /&gt;
  worldy(float, float) - returns float&lt;br /&gt;
  wraptext(int, str, str) - returns object&lt;br /&gt;
  wraptext2(int, float, str, str) - returns object&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Objects==&lt;br /&gt;
&amp;lt;pre&amp;gt;TGraalVar:&lt;br /&gt;
  initialized - boolean [R]&lt;br /&gt;
  ispaused - boolean - suspends the script if set to paused&lt;br /&gt;
  joinedclasses - object&lt;br /&gt;
  maxlooplimit - integer - sets the maxmimum number of loop iterations, default 10000; the allowed range for this can vary from server to server&lt;br /&gt;
  name - string&lt;br /&gt;
  scripterrors - object [R] - gives the list of script errors which were reported for this object&lt;br /&gt;
  scriptlogmissingfunctions - boolean&lt;br /&gt;
  timeout - float&lt;br /&gt;
  addarray(obj) - adds another array to this variable&lt;br /&gt;
  addarraymember(str) - returns object - adds an array member with a name and returns the new array member&lt;br /&gt;
  addnamedstring(str, str) - returns object&lt;br /&gt;
  cancelevents(str) - removes all previously scheduled events (scheduleevent) of the specified event name&lt;br /&gt;
  catchevent(str, str, str) - adds an event handler for the specified object and event, third parameter is the function which receives the event (first parameter of the event will be the object for which the event occured)&lt;br /&gt;
  clearemptyvars() - removes empty subvariables from memory&lt;br /&gt;
  clearvars() - clears all dynamic variables&lt;br /&gt;
  copyfrom(obj) - copies all variables and array values from another object, doesn't work for protected variables like players though&lt;br /&gt;
  getarraymember(str) - returns object - searches for an array member by name&lt;br /&gt;
  getdynamicvarnames() - returns object - gets the names of all dynamic (not built-in) subvariables of this object&lt;br /&gt;
  geteditvarnames() - returns object - gets the names of all dynamic variables which can be modified&lt;br /&gt;
  getfunctions() - returns object - gets the names of all functions of the object as array, also each entry has subvariables which give more information about the function (&amp;quot;parameters&amp;quot;, &amp;quot;description&amp;quot;, &amp;quot;scope&amp;quot;)&lt;br /&gt;
  getstaticvarnames() - returns object - gets the names of all static (built-in) subvariables of this object&lt;br /&gt;
  getvarnames() - returns object - gets the names of all subvariables of this object&lt;br /&gt;
  hasfunction(str) - returns boolean - checks if the object has a function of the specified name (also checks if it can be called by the current script object)&lt;br /&gt;
  ignoreevent(str, str) - lets the object ignore an event (second parameter) of the specified object name&lt;br /&gt;
  ignoreevents(str) - lets the object ignore all previously catched events of the specified object name&lt;br /&gt;
  insertarray(int, obj) - inserts an array at the specified index&lt;br /&gt;
  isinclass(str) - returns boolean - checks if the object has joined the specified class&lt;br /&gt;
  join(str) - lets the object join a class and inherit all functions and event handlers of that class&lt;br /&gt;
  leave(str) - leaves a previously joined class&lt;br /&gt;
  loadfolder(str, int) - loads the content of a folder into the variable, you must specify the folder name and pattern (e.g. &amp;quot;levels/bodies/*.png&amp;quot;) and if it should be recursive&lt;br /&gt;
  loadini(str) - loads an .ini file into the variable, you can access variables by obj.inisection.varname&lt;br /&gt;
  loadlines(str) - loads a file and adds it line by line to the variable (as array)&lt;br /&gt;
  loadstring(str) - loads the content of a file into the variable&lt;br /&gt;
  loadvars(str) - loads the variables from a file where each line has the format varname=value&lt;br /&gt;
  loadvarsfromarray(obj) - loads the variables from a string list of the format varname=value&lt;br /&gt;
  loadxml(str)&lt;br /&gt;
  loadxmlfromstring(str)&lt;br /&gt;
  objecttype() - returns string - returns the object type, which can be TGraalVar, TProjectile etc.&lt;br /&gt;
  savelines(str, int) - saves the array line by line into a file, the second parameter is the save mode (0 - overwrite, 1 - append)&lt;br /&gt;
  savestring(str, int) - saves the value as string into a file, the second parameter is the save mode (0 - overwrite, 1 - append)&lt;br /&gt;
  savevars(str, int) - saves the subvars in the format varname=value into a file, the second parameter is the save mode (0 - overwrite, 1 - append)&lt;br /&gt;
  savevarstoarray(bool) - returns object - saves the subvars in the format varname=value into an array, you must specify if it should be sorted&lt;br /&gt;
  savexml(str, int)&lt;br /&gt;
  savexmltostring() - returns string&lt;br /&gt;
  scheduleevent(float, str, params...) - returns object - invokes an event (onEventname) after the specified delay (in seconds), second parameter is the event name, followed by the parameters&lt;br /&gt;
  settimer(float) - invokes an onTimeout event after the specified time, similar to 'timeout=value'&lt;br /&gt;
  sortascending() - sorts the array in ascending order (smallest value first)&lt;br /&gt;
  sortbyvalue(str, str, bool) - sorts an array, specify the variable of the array members which is compared, also the variable type and if it should be sorted ascending; variable type can be &amp;quot;string&amp;quot;, otherwise it is sorted by floating point value&lt;br /&gt;
  sortdescending() - sorts the array in descending order (highest value first)&lt;br /&gt;
  subarray2(int, int, int, int) - returns object - extracts a two-dimensional array, specify startpos1, length1, startpos2, length2&lt;br /&gt;
  timershow() - lets an npc show the current timeout variable, deprecated&lt;br /&gt;
  trigger(str, params...) - invokes an event on the object (onEventname) with the specified event name and parameters, doesn't interrupt the current script&lt;br /&gt;
&lt;br /&gt;
  ActionMap (TGraalVar):&lt;br /&gt;
    bind(str, str, str)&lt;br /&gt;
    getbinding(str) - returns string&lt;br /&gt;
    getcommand(str, str) - returns string&lt;br /&gt;
    load() - returns boolean&lt;br /&gt;
    pop()&lt;br /&gt;
    push()&lt;br /&gt;
    save()&lt;br /&gt;
    unbind(str, str)&lt;br /&gt;
&lt;br /&gt;
  DTSAniThread (TGraalVar):&lt;br /&gt;
    aniindex - integer [R]&lt;br /&gt;
    atend - boolean [R]&lt;br /&gt;
    attack - boolean&lt;br /&gt;
    endpos - float&lt;br /&gt;
    hold - boolean&lt;br /&gt;
    position - float&lt;br /&gt;
    sequence - string&lt;br /&gt;
    startpos - float&lt;br /&gt;
    state - string&lt;br /&gt;
    timescale - float&lt;br /&gt;
    transtitiontime - float&lt;br /&gt;
    isintransition() - returns boolean&lt;br /&gt;
    play()&lt;br /&gt;
&lt;br /&gt;
  GameMovementInterpolate (TGraalVar):&lt;br /&gt;
    rigid - object [R]&lt;br /&gt;
    applyimpulse(str, str)&lt;br /&gt;
&lt;br /&gt;
    GameMovementRigid (GameMovementInterpolate):&lt;br /&gt;
      addrigidmove(str, str) - adds torque and force vector&lt;br /&gt;
&lt;br /&gt;
  GameMovementList (TGraalVar):&lt;br /&gt;
    finishmoves()&lt;br /&gt;
    move3d(str, float, int)&lt;br /&gt;
&lt;br /&gt;
  GameShape (TGraalVar):&lt;br /&gt;
    pixelshader - string&lt;br /&gt;
    vertexshader - string&lt;br /&gt;
&lt;br /&gt;
    GameShapeDIF (GameShape):&lt;br /&gt;
      activatelight(str)&lt;br /&gt;
      deactivatelight(str)&lt;br /&gt;
&lt;br /&gt;
    GameShapeDTS (GameShape):&lt;br /&gt;
      materiallist - object [R]&lt;br /&gt;
      materials - object [R]&lt;br /&gt;
      forceanimations() - starts to animate the object to make sure the animations are the wished start position&lt;br /&gt;
      getanimation(int) - returns object&lt;br /&gt;
      listnodes() - returns object&lt;br /&gt;
      pauseanimation(int)&lt;br /&gt;
      playanimation(int, str, int) - returns object - specify animation slot, animation name and flags (1 - hold, 2 - atend, 4 - attackanimation)&lt;br /&gt;
      playanimation2(int, str, int, float, float, float, float) - returns object - specify animation slot, animation name, flags, startpos, endpos, timescale, transitiontime&lt;br /&gt;
      stopanimation(int)&lt;br /&gt;
&lt;br /&gt;
    GameShapeFT (GameShape):&lt;br /&gt;
      levels - integer&lt;br /&gt;
      seed - integer&lt;br /&gt;
&lt;br /&gt;
  MovieClip (TGraalVar):&lt;br /&gt;
    _level0 - object [R]&lt;br /&gt;
    _parent - object [R]&lt;br /&gt;
    _root - object [R]&lt;br /&gt;
    _visible - boolean&lt;br /&gt;
    _x - float&lt;br /&gt;
    _xmouse - float [R]&lt;br /&gt;
    _y - float&lt;br /&gt;
    _ymouse - float [R]&lt;br /&gt;
    alpha - float&lt;br /&gt;
    blue - float&lt;br /&gt;
    frame - integer&lt;br /&gt;
    framecount - integer [R]&lt;br /&gt;
    green - float&lt;br /&gt;
    height - float [R]&lt;br /&gt;
    layernames - object [R]&lt;br /&gt;
    looping - boolean&lt;br /&gt;
    math - object [R]&lt;br /&gt;
    objectname - string&lt;br /&gt;
    objectnames - object [R]&lt;br /&gt;
    playing - boolean&lt;br /&gt;
    red - float&lt;br /&gt;
    width - float [R]&lt;br /&gt;
    attachmovie(params...) - returns object - parameters are the movie clip to copy, the name of the new clip, and the layer&lt;br /&gt;
    createemptymovieclip(str, int) - returns object - parameters are the the name of the new clip and the layer&lt;br /&gt;
    duplicatemovieclip(params...) - returns object&lt;br /&gt;
    getbytesloaded() - returns integer&lt;br /&gt;
    getbytestotal() - returns integer&lt;br /&gt;
    getcolor() - returns string&lt;br /&gt;
    getdepth() - returns integer&lt;br /&gt;
    getlayer(str) - returns object&lt;br /&gt;
    getproperty(int) - returns string&lt;br /&gt;
    gotoandplay(params...) - specify the frame name or frame number&lt;br /&gt;
    gotoandstop(params...) - specify the frame name or frame number&lt;br /&gt;
    hittest(params...) - returns boolean&lt;br /&gt;
    nextframe()&lt;br /&gt;
    play()&lt;br /&gt;
    prevframe()&lt;br /&gt;
    removelayer(str)&lt;br /&gt;
    removemovieclip()&lt;br /&gt;
    setcolor(str)&lt;br /&gt;
    setproperty(int, str)&lt;br /&gt;
    stop()&lt;br /&gt;
    swapdepths(str)&lt;br /&gt;
    unloadmovie() - same as removeMovieClip()&lt;br /&gt;
&lt;br /&gt;
  MRandomGenerator (TGraalVar):&lt;br /&gt;
    seed - integer&lt;br /&gt;
    destroy()&lt;br /&gt;
    randfloat() - returns float - a random floating point number between 0 and 1&lt;br /&gt;
    randint() - returns integer - a random integer number between 0 and 2147483647, use the modulus operator to generate a value in a smaller range (e.g. obj.randInt()%10 to get a value between 0 and 9)&lt;br /&gt;
&lt;br /&gt;
    MRandomLCG (MRandomGenerator):&lt;br /&gt;
&lt;br /&gt;
    MRandomR250 (MRandomGenerator):&lt;br /&gt;
&lt;br /&gt;
  SimObject (TGraalVar):&lt;br /&gt;
&lt;br /&gt;
    SceneObject (SimObject):&lt;br /&gt;
      eulerrotation - string&lt;br /&gt;
      forwardvector - string&lt;br /&gt;
      objectbox - string [R]&lt;br /&gt;
      position - string&lt;br /&gt;
      renderposition - string&lt;br /&gt;
      rightvector - string&lt;br /&gt;
      rotation - string&lt;br /&gt;
      scale - string&lt;br /&gt;
      scaledobjectbox - string [R]&lt;br /&gt;
      transform - string&lt;br /&gt;
      upvector - string&lt;br /&gt;
      worldbox - string [R]&lt;br /&gt;
      worldboxcenter - string [R]&lt;br /&gt;
      x - float&lt;br /&gt;
      y - float&lt;br /&gt;
      z - float&lt;br /&gt;
      getforwardvector() - returns string&lt;br /&gt;
      getobjectbox() - returns string&lt;br /&gt;
      getposition() - returns string&lt;br /&gt;
      getrightvector() - returns string&lt;br /&gt;
      getscale() - returns string&lt;br /&gt;
      gettransform() - returns string&lt;br /&gt;
      getupvector() - returns string&lt;br /&gt;
      getworldbox() - returns string&lt;br /&gt;
      getworldboxcenter() - returns string&lt;br /&gt;
      light()&lt;br /&gt;
      setforwardvector(str)&lt;br /&gt;
      setposition(str)&lt;br /&gt;
      setrightvector(str)&lt;br /&gt;
      setscale(str)&lt;br /&gt;
      settransform(str)&lt;br /&gt;
      setupvector(str)&lt;br /&gt;
&lt;br /&gt;
      fxSunLight (SceneObject):&lt;br /&gt;
        animazimuth - boolean&lt;br /&gt;
        animbrightness - boolean&lt;br /&gt;
        animcolour - boolean&lt;br /&gt;
        animelevation - boolean&lt;br /&gt;
        animrotation - boolean&lt;br /&gt;
        animsize - boolean&lt;br /&gt;
        azimuthkeys - string&lt;br /&gt;
        azimuthtime - float&lt;br /&gt;
        blendmode - integer&lt;br /&gt;
        bluekeys - string&lt;br /&gt;
        brightness - float&lt;br /&gt;
        brightnesskeys - string&lt;br /&gt;
        brightnesstime - float&lt;br /&gt;
        colour - string&lt;br /&gt;
        colourtime - float&lt;br /&gt;
        elevationkeys - string&lt;br /&gt;
        elevationtime - float&lt;br /&gt;
        enable - boolean&lt;br /&gt;
        fadetime - float&lt;br /&gt;
        flaresize - float&lt;br /&gt;
        flaretp - boolean&lt;br /&gt;
        greenkeys - string&lt;br /&gt;
        lerpazimuth - boolean&lt;br /&gt;
        lerpbrightness - boolean&lt;br /&gt;
        lerpcolour - boolean&lt;br /&gt;
        lerpelevation - boolean&lt;br /&gt;
        lerprotation - boolean&lt;br /&gt;
        lerpsize - boolean&lt;br /&gt;
        linkflaresize - boolean&lt;br /&gt;
        localflarebitmap - string&lt;br /&gt;
        maxazimuth - float&lt;br /&gt;
        maxbrightness - float&lt;br /&gt;
        maxcolour - string&lt;br /&gt;
        maxelevation - float&lt;br /&gt;
        maxrotation - float&lt;br /&gt;
        maxsize - float&lt;br /&gt;
        minazimuth - float&lt;br /&gt;
        minbrightness - float&lt;br /&gt;
        mincolour - string&lt;br /&gt;
        minelevation - float&lt;br /&gt;
        minrotation - float&lt;br /&gt;
        minsize - float&lt;br /&gt;
        redkeys - string&lt;br /&gt;
        remoteflarebitmap - string&lt;br /&gt;
        rotationkeys - string&lt;br /&gt;
        rotationtime - float&lt;br /&gt;
        singlecolourkeys - boolean&lt;br /&gt;
        sizekeys - string&lt;br /&gt;
        sizetime - float&lt;br /&gt;
        sunazimuth - float&lt;br /&gt;
        sunelevation - float&lt;br /&gt;
        reset()&lt;br /&gt;
&lt;br /&gt;
      GameObject (SceneObject):&lt;br /&gt;
        alpha - float&lt;br /&gt;
        attachedtoobject - object&lt;br /&gt;
        attrobjects - object [R]&lt;br /&gt;
        chat - string&lt;br /&gt;
        collision - boolean&lt;br /&gt;
        iseditorobject - boolean&lt;br /&gt;
        liquidheight - float [R]&lt;br /&gt;
        liquidtype - string [R]&lt;br /&gt;
        movetype - string&lt;br /&gt;
        nick - string - same as nickname&lt;br /&gt;
        nickcolor - string&lt;br /&gt;
        nickname - string&lt;br /&gt;
        position - string&lt;br /&gt;
        scaledshapebox - string [R]&lt;br /&gt;
        shadow - boolean&lt;br /&gt;
        shape - string&lt;br /&gt;
        shapebox - string [R]&lt;br /&gt;
        showterrain - boolean&lt;br /&gt;
        skin - string&lt;br /&gt;
        solid - boolean&lt;br /&gt;
        transform - string&lt;br /&gt;
        velocity - string&lt;br /&gt;
        watercoverage - float [R]&lt;br /&gt;
        checkcollision(str, str) - returns object&lt;br /&gt;
        checkcollisionbybox(str, str, str) - returns object&lt;br /&gt;
        clippolygons(str) - returns object&lt;br /&gt;
        findimg(int) - returns object&lt;br /&gt;
        getcontrollingclient() - returns object&lt;br /&gt;
        getcontrollingobject() - returns object&lt;br /&gt;
        getdropz(str) - returns float&lt;br /&gt;
        getinteriorobject() - returns object&lt;br /&gt;
        getmountedobject(int) - returns object&lt;br /&gt;
        getmountedobjectcount() - returns integer&lt;br /&gt;
        getmountedobjectnode(int) - returns integer&lt;br /&gt;
        getmountnodeobject(int) - returns object&lt;br /&gt;
        getmountposition(int) - returns string&lt;br /&gt;
        getmounttransform(int) - returns string&lt;br /&gt;
        getnodeposition(str) - returns string&lt;br /&gt;
        getnodetransform(str) - returns string&lt;br /&gt;
        getobjectmount() - returns object&lt;br /&gt;
        hideimg(int)&lt;br /&gt;
        hideimgs(int, int)&lt;br /&gt;
        isdrawn() - returns boolean&lt;br /&gt;
        isininterior() - returns boolean&lt;br /&gt;
        ismounted() - returns boolean&lt;br /&gt;
        mountobject(obj, int) - returns boolean&lt;br /&gt;
        setdirection(str)&lt;br /&gt;
        unmount()&lt;br /&gt;
        unmountobject(obj) - returns boolean&lt;br /&gt;
&lt;br /&gt;
        Camera (GameObject):&lt;br /&gt;
          cameramode - string&lt;br /&gt;
          eulerrotation - string&lt;br /&gt;
          followattachedobject - object&lt;br /&gt;
          lookatposition - string&lt;br /&gt;
          lookvector - string&lt;br /&gt;
          updateposition()&lt;br /&gt;
&lt;br /&gt;
        DynamicShapeReplicator (GameObject):&lt;br /&gt;
          aligntoterrain - boolean&lt;br /&gt;
          allowedterrainslope - integer&lt;br /&gt;
          allowoninteriors - boolean&lt;br /&gt;
          allowonstatics - boolean&lt;br /&gt;
          allowonterrain - boolean&lt;br /&gt;
          allowonwater - boolean&lt;br /&gt;
          allowwatersurface - boolean&lt;br /&gt;
          boxmax - string&lt;br /&gt;
          boxmin - string&lt;br /&gt;
          hidereplications - boolean&lt;br /&gt;
          maxgridobjects - integer&lt;br /&gt;
          mingridobjects - integer&lt;br /&gt;
          offsetz - float&lt;br /&gt;
          radius - integer&lt;br /&gt;
          seed - integer&lt;br /&gt;
          shapefiles - string&lt;br /&gt;
          shaperotatemax - string&lt;br /&gt;
          shaperotatemin - string&lt;br /&gt;
          shapescalemax - string&lt;br /&gt;
          shapescalemin - string&lt;br /&gt;
          surfaceexclusionmode - boolean&lt;br /&gt;
          surfacetype - integer&lt;br /&gt;
          terrainalignment - string&lt;br /&gt;
&lt;br /&gt;
          DynamicGrass (DynamicShapeReplicator):&lt;br /&gt;
&lt;br /&gt;
          DynamicGrassReplicator (DynamicShapeReplicator):&lt;br /&gt;
&lt;br /&gt;
      Sky (SceneObject):&lt;br /&gt;
        cloudheight1 - float&lt;br /&gt;
        cloudheight2 - float&lt;br /&gt;
        cloudheight3 - float&lt;br /&gt;
        cloudspeed1 - float&lt;br /&gt;
        cloudspeed2 - float&lt;br /&gt;
        cloudspeed3 - float&lt;br /&gt;
        fogcolor - string&lt;br /&gt;
        fogstorm1 - boolean&lt;br /&gt;
        fogstorm2 - boolean&lt;br /&gt;
        fogstorm3 - boolean&lt;br /&gt;
        fogvolume1 - string&lt;br /&gt;
        fogvolume2 - string&lt;br /&gt;
        fogvolume3 - string&lt;br /&gt;
        fogvolumecolor1 - string&lt;br /&gt;
        fogvolumecolor2 - string&lt;br /&gt;
        fogvolumecolor3 - string&lt;br /&gt;
        materiallist - string&lt;br /&gt;
        norenderbans - boolean&lt;br /&gt;
        renderbottomtexture - boolean&lt;br /&gt;
        skyfadetime - float&lt;br /&gt;
        skysolidcolor - string&lt;br /&gt;
        useskytextures - boolean&lt;br /&gt;
        windeffectprecipitation - boolean&lt;br /&gt;
        windvelocity - string&lt;br /&gt;
        getwindowvelocity() - returns string&lt;br /&gt;
        realfog(bool, float, float, float) - specify if it should show, and max, min and speed values&lt;br /&gt;
        stormclouds(bool, float) - specify if it should show, and the duration&lt;br /&gt;
        stormcloudsshow(bool)&lt;br /&gt;
        stormfog(float, float) - percent and duration of the fog&lt;br /&gt;
        stormfogshow(bool)&lt;br /&gt;
&lt;br /&gt;
      TerrainBlock (SceneObject):&lt;br /&gt;
        repeatterrain - boolean&lt;br /&gt;
        squaresize - integer&lt;br /&gt;
        terrainfile - string&lt;br /&gt;
&lt;br /&gt;
      WaterBlock (SceneObject):&lt;br /&gt;
        density - float&lt;br /&gt;
        depthgradient - float&lt;br /&gt;
        distortgridscale - float&lt;br /&gt;
        distortmag - float&lt;br /&gt;
        distorttime - float&lt;br /&gt;
        envmapintensity - float&lt;br /&gt;
        envmapovertexture - string&lt;br /&gt;
        envmapundertexture - string&lt;br /&gt;
        flowangle - float&lt;br /&gt;
        flowrate - float&lt;br /&gt;
        ignoreterrain - boolean&lt;br /&gt;
        liquidtype - string&lt;br /&gt;
        maxalpha - float&lt;br /&gt;
        minalpha - float&lt;br /&gt;
        removewetedges - boolean&lt;br /&gt;
        shoredepth - float&lt;br /&gt;
        shoretexture - string&lt;br /&gt;
        specularcolor - string&lt;br /&gt;
        specularmasktex - string&lt;br /&gt;
        specularpower - float&lt;br /&gt;
        submergetexture0 - string&lt;br /&gt;
        submergetexture1 - string&lt;br /&gt;
        surfaceopacity - float&lt;br /&gt;
        surfaceparallax - float&lt;br /&gt;
        surfacetexture - string&lt;br /&gt;
        tessshore - float&lt;br /&gt;
        tesssurface - float&lt;br /&gt;
        usedepthmask - boolean&lt;br /&gt;
        viscosity - float&lt;br /&gt;
        wavemagnitude - float&lt;br /&gt;
&lt;br /&gt;
    SimGroup (SimObject):&lt;br /&gt;
      addcontrol(obj)&lt;br /&gt;
&lt;br /&gt;
      GameConnection (SimGroup):&lt;br /&gt;
        account - string [R]&lt;br /&gt;
        camera - object [R]&lt;br /&gt;
        communityname - string [R]&lt;br /&gt;
        isobserver - boolean [R]&lt;br /&gt;
        nick - string [R]&lt;br /&gt;
        objecttype() - returns string&lt;br /&gt;
        showprofile()&lt;br /&gt;
&lt;br /&gt;
    Sun (SimObject):&lt;br /&gt;
      ambient - string&lt;br /&gt;
      color - string&lt;br /&gt;
      direction - string&lt;br /&gt;
&lt;br /&gt;
  TDrawableObject (TGraalVar):&lt;br /&gt;
    layer - integer [R]&lt;br /&gt;
&lt;br /&gt;
    TBaddy (TDrawableObject):&lt;br /&gt;
      dir - integer&lt;br /&gt;
      headdir - integer&lt;br /&gt;
      mode - integer&lt;br /&gt;
      power - integer&lt;br /&gt;
      type - integer&lt;br /&gt;
      x - float&lt;br /&gt;
      y - float&lt;br /&gt;
&lt;br /&gt;
    TLevelObject (TDrawableObject):&lt;br /&gt;
      level - object [R]&lt;br /&gt;
      x - float&lt;br /&gt;
      y - float&lt;br /&gt;
      z - float&lt;br /&gt;
&lt;br /&gt;
      TExplosion (TLevelObject):&lt;br /&gt;
        dir - integer [R]&lt;br /&gt;
        power - integer [R]&lt;br /&gt;
        time - float [R]&lt;br /&gt;
&lt;br /&gt;
      TGaniObject (TLevelObject):&lt;br /&gt;
        alpha - float&lt;br /&gt;
        ani - object [R]&lt;br /&gt;
        aniparams - string [R]&lt;br /&gt;
        anistep - integer [R]&lt;br /&gt;
        attachedtoobject - object [R]&lt;br /&gt;
        attachid - integer [R]&lt;br /&gt;
        attachtype - integer [R]&lt;br /&gt;
        attr - object [R]&lt;br /&gt;
        blue - float&lt;br /&gt;
        body - string&lt;br /&gt;
        bodyimg - string&lt;br /&gt;
        colors - object [R]&lt;br /&gt;
        dir - integer&lt;br /&gt;
        gmap - object [R]&lt;br /&gt;
        green - float&lt;br /&gt;
        head - string&lt;br /&gt;
        headimg - string&lt;br /&gt;
        mode - integer - the object drawing mode (0 - add, 1 - transparent, 2 - subtract, 3 - daynight)&lt;br /&gt;
        red - float&lt;br /&gt;
        rotation - float&lt;br /&gt;
        shield - string&lt;br /&gt;
        sprite - integer&lt;br /&gt;
        stretchx - float&lt;br /&gt;
        stretchy - float&lt;br /&gt;
        sword - string&lt;br /&gt;
        zoom - float&lt;br /&gt;
        getimageforsprite(obj) - returns string&lt;br /&gt;
        getsprite(str) - returns object&lt;br /&gt;
        getspriteforspritepos(obj) - returns object&lt;br /&gt;
        setcoloreffect(float, float, float, float)&lt;br /&gt;
        seteffectmode(int)&lt;br /&gt;
&lt;br /&gt;
        TProjectile (TGaniObject):&lt;br /&gt;
          angle - float [R]&lt;br /&gt;
          fromplayer - object [R]&lt;br /&gt;
          horiz - boolean [R]&lt;br /&gt;
          params - object [R]&lt;br /&gt;
          speed - float [R]&lt;br /&gt;
          x - float [R]&lt;br /&gt;
          y - float [R]&lt;br /&gt;
          z - float [R]&lt;br /&gt;
          zspeed - float [R]&lt;br /&gt;
&lt;br /&gt;
        TServerHorse (TGaniObject):&lt;br /&gt;
          bombpower - integer&lt;br /&gt;
          bombs - integer&lt;br /&gt;
          bushes - integer&lt;br /&gt;
          dir - integer&lt;br /&gt;
          type - integer&lt;br /&gt;
&lt;br /&gt;
        TServerPlayer (TGaniObject):&lt;br /&gt;
          account - string [R]&lt;br /&gt;
          ap - integer&lt;br /&gt;
          attached - boolean [R]&lt;br /&gt;
          attachedtoobject - object&lt;br /&gt;
          bombs - integer&lt;br /&gt;
          chat - string&lt;br /&gt;
          communityname - string [R]&lt;br /&gt;
          darts - integer&lt;br /&gt;
          fullhearts - integer [R]&lt;br /&gt;
          glovepower - integer&lt;br /&gt;
          gralats - integer&lt;br /&gt;
          guild - string [R]&lt;br /&gt;
          headimg - string&lt;br /&gt;
          headset - integer&lt;br /&gt;
          hearts - float [R]&lt;br /&gt;
          horseimg - string [R]&lt;br /&gt;
          hp - float [R]&lt;br /&gt;
          id - integer [R]&lt;br /&gt;
          isadmin - boolean [R]&lt;br /&gt;
          isbuddy - boolean&lt;br /&gt;
          ischannel - boolean [R]&lt;br /&gt;
          ischannelopen - boolean [R]&lt;br /&gt;
          ischanneluser - boolean [R]&lt;br /&gt;
          isexternal - boolean [R]&lt;br /&gt;
          isfemale - boolean [R]&lt;br /&gt;
          isignored - boolean&lt;br /&gt;
          isignoring - boolean [R]&lt;br /&gt;
          isloggedin - boolean [R]&lt;br /&gt;
          ismale - boolean [R]&lt;br /&gt;
          ismuted - boolean [R]&lt;br /&gt;
          ismuting - boolean [R]&lt;br /&gt;
          language - string [R]&lt;br /&gt;
          languagedomain - string [R]&lt;br /&gt;
          mapicon - object [R] - of type TDrawingPanel, this is the icon that appears on the mini-map, usually updated by the playerlist script&lt;br /&gt;
          maxhp - integer [R]&lt;br /&gt;
          messagebubble - integer [R]&lt;br /&gt;
          mp - integer&lt;br /&gt;
          nick - string&lt;br /&gt;
          platform - string [R]&lt;br /&gt;
          playersindex - integer [R]&lt;br /&gt;
          rating - float [R]&lt;br /&gt;
          ratingd - float [R]&lt;br /&gt;
          rupees - integer - better use 'gralats'&lt;br /&gt;
          shieldimg - string - only there for compatibility with GS1, use just 'shield' instead&lt;br /&gt;
          shieldpower - integer [R]&lt;br /&gt;
          swordimg - string - only there for compatibility with GS1, use just 'sword' instead&lt;br /&gt;
          swordpower - integer [R]&lt;br /&gt;
          x - float&lt;br /&gt;
          y - float&lt;br /&gt;
          isguildpm() - returns boolean&lt;br /&gt;
          ismasspm() - returns boolean&lt;br /&gt;
          openexternalhistory() - returns boolean&lt;br /&gt;
          openexternalpm(bool) - returns boolean - as parameter specify 'true' if it should display the pm sent by the player, otherwise always open a blank PM window&lt;br /&gt;
          pmswaiting() - returns boolean&lt;br /&gt;
          showprofile()&lt;br /&gt;
&lt;br /&gt;
          TPlayer (TServerPlayer):&lt;br /&gt;
            ap - integer&lt;br /&gt;
            chat - string&lt;br /&gt;
            freezetime - float&lt;br /&gt;
            hearts - float&lt;br /&gt;
            horseimg - string&lt;br /&gt;
            hp - float&lt;br /&gt;
            hurt - boolean [R]&lt;br /&gt;
            hurtdx - float [R]&lt;br /&gt;
            hurtdy - float [R]&lt;br /&gt;
            hurted - boolean [R]&lt;br /&gt;
            hurtpower - float [R]&lt;br /&gt;
            isfemale - boolean [R]&lt;br /&gt;
            ismale - boolean [R]&lt;br /&gt;
            isobserver - boolean [R]&lt;br /&gt;
            letters - string&lt;br /&gt;
            map - boolean [R]&lt;br /&gt;
            nick - string [R]&lt;br /&gt;
            onhorse - boolean [R]&lt;br /&gt;
            online - boolean [R]&lt;br /&gt;
            paused - boolean [R]&lt;br /&gt;
            reading - boolean [R]&lt;br /&gt;
            shieldimg - string - same as 'shield', except that changing this also updates the shieldpower&lt;br /&gt;
            sprite - integer&lt;br /&gt;
            swimming - boolean [R]&lt;br /&gt;
            swordimg - string - same as 'sword', except that changing this also updates the swordpower&lt;br /&gt;
            weapon - object [R]&lt;br /&gt;
            weapons - object [R]&lt;br /&gt;
&lt;br /&gt;
          TServerNPC (TServerPlayer):&lt;br /&gt;
            actionplayer - integer [R]&lt;br /&gt;
            hearts - float&lt;br /&gt;
            height - float [R]&lt;br /&gt;
            horseimg - string&lt;br /&gt;
            hp - float&lt;br /&gt;
            hurtdx - float&lt;br /&gt;
            hurtdy - float&lt;br /&gt;
            image - string&lt;br /&gt;
            isblocking - boolean&lt;br /&gt;
            isblockingprojectiles - boolean&lt;br /&gt;
            layer - integer&lt;br /&gt;
            npcsindex - integer [R]&lt;br /&gt;
            peltwithblackstone - boolean [R]&lt;br /&gt;
            peltwithbush - boolean [R]&lt;br /&gt;
            peltwithnpc - boolean [R]&lt;br /&gt;
            peltwithsign - boolean [R]&lt;br /&gt;
            peltwithstone - boolean [R]&lt;br /&gt;
            peltwithvase - boolean [R]&lt;br /&gt;
            save - object [R]&lt;br /&gt;
            shieldpower - integer&lt;br /&gt;
            sprite - integer&lt;br /&gt;
            swordpower - integer&lt;br /&gt;
            visible - boolean&lt;br /&gt;
            width - float [R]&lt;br /&gt;
            x - float&lt;br /&gt;
            y - float&lt;br /&gt;
            blockagain()&lt;br /&gt;
            blockagainlocal()&lt;br /&gt;
            canbecarried()&lt;br /&gt;
            canbepulled()&lt;br /&gt;
            canbepushed()&lt;br /&gt;
            cannotbecarried()&lt;br /&gt;
            cannotbepulled()&lt;br /&gt;
            cannotbepushed()&lt;br /&gt;
            carryobject(str)&lt;br /&gt;
            changeimgcolors(int, float, float, float, float)&lt;br /&gt;
            changeimgmode(int, int)&lt;br /&gt;
            changeimgpart(int, int, int, int, int)&lt;br /&gt;
            changeimgvis(int, int)&lt;br /&gt;
            changeimgzoom(int, float)&lt;br /&gt;
            destroy()&lt;br /&gt;
            dontblock()&lt;br /&gt;
            dontblocklocal()&lt;br /&gt;
            drawaslight()&lt;br /&gt;
            drawoverplayer()&lt;br /&gt;
            drawunderplayer()&lt;br /&gt;
            findimg(int) - returns object&lt;br /&gt;
            hide()&lt;br /&gt;
            hideimg(int)&lt;br /&gt;
            hideimgs(int, int)&lt;br /&gt;
            hidelocal()&lt;br /&gt;
            hurt(int)&lt;br /&gt;
            lay(str)&lt;br /&gt;
            message(str)&lt;br /&gt;
            move(float, float, float, int)&lt;br /&gt;
            setbow(str)&lt;br /&gt;
            setcharani(str, str)&lt;br /&gt;
            setchargender(str)&lt;br /&gt;
            setimg(str)&lt;br /&gt;
            setimgpart(str, int, int, int, int)&lt;br /&gt;
            setshape(int, int, int)&lt;br /&gt;
            setshape2(int, int, obj)&lt;br /&gt;
            setzoomeffect(float)&lt;br /&gt;
            shootarrow(int)&lt;br /&gt;
            shootball()&lt;br /&gt;
            shootfireball(int)&lt;br /&gt;
            shootfireblast(int)&lt;br /&gt;
            shootnuke(int)&lt;br /&gt;
            show()&lt;br /&gt;
            showani(int, float, float, int, str) - returns object&lt;br /&gt;
            showani2(int, float, float, float, int, str) - returns object&lt;br /&gt;
            showcharacter()&lt;br /&gt;
            showimg(int, str, float, float) - returns object&lt;br /&gt;
            showimg2(int, str, float, float, float) - returns object&lt;br /&gt;
            showlocal()&lt;br /&gt;
            showpoly(int, obj) - returns object&lt;br /&gt;
            showpoly2(int, obj) - returns object&lt;br /&gt;
            showtext(int, float, float, str, str, str) - returns object&lt;br /&gt;
            showtext2(int, float, float, float, str, str, str) - returns object&lt;br /&gt;
            take(str)&lt;br /&gt;
            take2(int)&lt;br /&gt;
            takehorse(int)&lt;br /&gt;
            throwcarry()&lt;br /&gt;
            timereverywhere()&lt;br /&gt;
&lt;br /&gt;
            TServerWeapon (TServerNPC):&lt;br /&gt;
              isweapon - boolean [R]&lt;br /&gt;
&lt;br /&gt;
      TServerBomb (TLevelObject):&lt;br /&gt;
        power - integer&lt;br /&gt;
        time - float&lt;br /&gt;
&lt;br /&gt;
      TServerCarry (TLevelObject):&lt;br /&gt;
&lt;br /&gt;
      TServerChest (TLevelObject):&lt;br /&gt;
        isopen - boolean [R]&lt;br /&gt;
        item - string [R]&lt;br /&gt;
&lt;br /&gt;
      TServerExtra (TLevelObject):&lt;br /&gt;
        time - float [R]&lt;br /&gt;
        type - integer [R]&lt;br /&gt;
&lt;br /&gt;
      TServerFlying (TLevelObject):&lt;br /&gt;
        dir - integer [R]&lt;br /&gt;
        dx - float&lt;br /&gt;
        dy - float&lt;br /&gt;
        from - integer [R]&lt;br /&gt;
        type - integer [R]&lt;br /&gt;
&lt;br /&gt;
      TServerLeap (TLevelObject):&lt;br /&gt;
&lt;br /&gt;
      TServerSign (TLevelObject):&lt;br /&gt;
        text - string&lt;br /&gt;
&lt;br /&gt;
      TShowImg (TLevelObject):&lt;br /&gt;
        alpha - float&lt;br /&gt;
        ani - string&lt;br /&gt;
        attachnode - string&lt;br /&gt;
        attachoffset - string&lt;br /&gt;
        attachtoowner - boolean&lt;br /&gt;
        blue - float&lt;br /&gt;
        code - string - the old representation as 'font@style@text'&lt;br /&gt;
        dimension - integer&lt;br /&gt;
        dir - integer&lt;br /&gt;
        emitter - object [R]&lt;br /&gt;
        eulerrotation - string&lt;br /&gt;
        flashfile - string&lt;br /&gt;
        font - string&lt;br /&gt;
        green - float&lt;br /&gt;
        image - string&lt;br /&gt;
        imageindex - integer [R]&lt;br /&gt;
        is3dlight - boolean&lt;br /&gt;
        layer - integer&lt;br /&gt;
        mode - integer - the image drawing mode (0 - add, 1 - transparent, 2 - subtract, 3 - daynight)&lt;br /&gt;
        playerlook - boolean - if the animation should take it's head, body, sword, shield and attr[] from the owner (playerlook), set this to false if you want to set the images yourself by changing showimg.actor.head etc.&lt;br /&gt;
        polygon - object&lt;br /&gt;
        position - string&lt;br /&gt;
        red - float&lt;br /&gt;
        rotation - float&lt;br /&gt;
        shape - string&lt;br /&gt;
        shapeobject - object [R]&lt;br /&gt;
        spin - float&lt;br /&gt;
        stretchx - float&lt;br /&gt;
        stretchy - float&lt;br /&gt;
        style - string&lt;br /&gt;
        text - string&lt;br /&gt;
        x - float&lt;br /&gt;
        y - float&lt;br /&gt;
        z - float&lt;br /&gt;
        zoom - float&lt;br /&gt;
&lt;br /&gt;
  TDrawingPanel (TGraalVar):&lt;br /&gt;
    height - integer [R]&lt;br /&gt;
    isclear - boolean [R]&lt;br /&gt;
    parth - integer [R]&lt;br /&gt;
    partw - integer [R]&lt;br /&gt;
    partx - integer [R]&lt;br /&gt;
    party - integer [R]&lt;br /&gt;
    width - integer [R]&lt;br /&gt;
    clearall()&lt;br /&gt;
    clearrectangle(int, int, int, int) - x, y, width and height&lt;br /&gt;
    drawimage(int, int, str) - x, y, source image&lt;br /&gt;
    drawimagerectangle(int, int, str, int, int, int, int) - destination x and y, source image, source x,y,width and height&lt;br /&gt;
    drawimagestretched(int, int, int, int, str, int, int, int, int) - destination x,y,width and height, source image, source x,y,width and height&lt;br /&gt;
    saveimage(str)&lt;br /&gt;
&lt;br /&gt;
  Terraformer (TGraalVar):&lt;br /&gt;
    loadgrayscale(int, str) - returns boolean&lt;br /&gt;
    loadgreyscale(int, str) - returns boolean&lt;br /&gt;
    savegreyscale(int, str) - returns boolean&lt;br /&gt;
    setterrain(int) - returns boolean&lt;br /&gt;
&lt;br /&gt;
  TFrameDetail (TGraalVar):&lt;br /&gt;
    bordercolor - string&lt;br /&gt;
    borderenable - string&lt;br /&gt;
    bordermovable - string&lt;br /&gt;
    borderwidth - integer&lt;br /&gt;
    minextent - string&lt;br /&gt;
&lt;br /&gt;
  TGameObjectAttr (TGraalVar):&lt;br /&gt;
&lt;br /&gt;
  TGaniParam (TGraalVar):&lt;br /&gt;
&lt;br /&gt;
  TGraalAni (TGraalVar):&lt;br /&gt;
    continuous - boolean&lt;br /&gt;
    ganitype - string [R]&lt;br /&gt;
    loop - boolean&lt;br /&gt;
    movie - boolean&lt;br /&gt;
    setbackto - string&lt;br /&gt;
    singledirection - boolean&lt;br /&gt;
    addsprite(int) - returns object&lt;br /&gt;
    addstep() - returns object&lt;br /&gt;
    deletesprite(int)&lt;br /&gt;
    deletestep(int)&lt;br /&gt;
    getsprite(int) - returns object&lt;br /&gt;
    insertstep(int) - returns object&lt;br /&gt;
&lt;br /&gt;
  TGraalAniPart (TGraalVar):&lt;br /&gt;
    attr - integer&lt;br /&gt;
    dx - integer&lt;br /&gt;
    dy - integer&lt;br /&gt;
    param - integer&lt;br /&gt;
    sprite - object&lt;br /&gt;
&lt;br /&gt;
  TGraalAniSound (TGraalVar):&lt;br /&gt;
    delay - float&lt;br /&gt;
    dx - float&lt;br /&gt;
    dy - float&lt;br /&gt;
    sound - string&lt;br /&gt;
&lt;br /&gt;
  TGraalAniSprite (TGraalVar):&lt;br /&gt;
    alpha - float&lt;br /&gt;
    blue - float&lt;br /&gt;
    description - string&lt;br /&gt;
    green - float&lt;br /&gt;
    height - integer&lt;br /&gt;
    image - string&lt;br /&gt;
    imagetype - string [R]&lt;br /&gt;
    mode - integer&lt;br /&gt;
    red - float&lt;br /&gt;
    rotation - float&lt;br /&gt;
    spriteindex - integer&lt;br /&gt;
    stretchx - float&lt;br /&gt;
    stretchy - float&lt;br /&gt;
    width - integer&lt;br /&gt;
    x - integer&lt;br /&gt;
    y - integer&lt;br /&gt;
    zoom - float&lt;br /&gt;
    addattachment() - returns object&lt;br /&gt;
    deleteattachment(int)&lt;br /&gt;
    insertattachment(int) - returns object&lt;br /&gt;
&lt;br /&gt;
  TGraalAniStep (TGraalVar):&lt;br /&gt;
    delay - float&lt;br /&gt;
    addpos(int) - returns object&lt;br /&gt;
    deletepos(int, int)&lt;br /&gt;
    insertpos(int, int) - returns object&lt;br /&gt;
&lt;br /&gt;
  TGraalSpriteAttachment (TGraalVar):&lt;br /&gt;
    behind - boolean&lt;br /&gt;
    dx - integer&lt;br /&gt;
    dy - integer&lt;br /&gt;
    sprite - object&lt;br /&gt;
&lt;br /&gt;
  THTTPRequest (TGraalVar):&lt;br /&gt;
    address - string [R]&lt;br /&gt;
    contentlanguage - string [R]&lt;br /&gt;
    contentlength - integer [R]&lt;br /&gt;
    contenttype - string [R]&lt;br /&gt;
    downloadcomplete - boolean [R]&lt;br /&gt;
    file - string [R]&lt;br /&gt;
    fulldata - string [R]&lt;br /&gt;
    lastmodified - string [R]&lt;br /&gt;
    port - integer [R]&lt;br /&gt;
    returncode - integer [R]&lt;br /&gt;
    returnmessage - string [R]&lt;br /&gt;
    server - string [R]&lt;br /&gt;
    url - string [R]&lt;br /&gt;
&lt;br /&gt;
  TMovementRigid (TGraalVar):&lt;br /&gt;
    mass - float&lt;br /&gt;
&lt;br /&gt;
  TParticle (TGraalVar):&lt;br /&gt;
    angle - float&lt;br /&gt;
    lifetime - float&lt;br /&gt;
    movementvector - string&lt;br /&gt;
    sound - string&lt;br /&gt;
    speed - float&lt;br /&gt;
    zangle - float&lt;br /&gt;
&lt;br /&gt;
  TParticleEmitter (TGraalVar):&lt;br /&gt;
    attachposition - boolean&lt;br /&gt;
    autorotation - boolean&lt;br /&gt;
    checkbelowterrain - boolean&lt;br /&gt;
    clippingbox - string&lt;br /&gt;
    cliptoscreen - boolean&lt;br /&gt;
    continueafterdestroy - boolean&lt;br /&gt;
    currentparticlecount - integer [R]&lt;br /&gt;
    delaymax - float&lt;br /&gt;
    delaymin - float&lt;br /&gt;
    dropemitter - object [R]&lt;br /&gt;
    dropwateremitter - object [R]&lt;br /&gt;
    emissionoffset - string&lt;br /&gt;
    emitatterrainheight - boolean&lt;br /&gt;
    emitautomatically - boolean&lt;br /&gt;
    emittedparticles - integer [R]&lt;br /&gt;
    firstinfront - boolean&lt;br /&gt;
    isfrozen - boolean&lt;br /&gt;
    maxparticles - integer&lt;br /&gt;
    movementfactor - float&lt;br /&gt;
    nrofparticles - integer&lt;br /&gt;
    particle - object [R]&lt;br /&gt;
    particletypes - integer&lt;br /&gt;
    wraptoclippingbox - boolean&lt;br /&gt;
    addemitmodifier(str, float, float, str, str, float, float) - returns object&lt;br /&gt;
    addglobalmodifier(str, float, float, str, str, float, float) - returns object&lt;br /&gt;
    addlocalmodifier(str, float, float, str, str, float, float) - returns object&lt;br /&gt;
    advancetime(float)&lt;br /&gt;
    emit()&lt;br /&gt;
    emitat(str)&lt;br /&gt;
    removemodifiers()&lt;br /&gt;
    removeparticles()&lt;br /&gt;
&lt;br /&gt;
  TParticleModifier (TGraalVar):&lt;br /&gt;
    addmod(str, str, float, float)&lt;br /&gt;
&lt;br /&gt;
  TScriptFunction (TGraalVar):&lt;br /&gt;
&lt;br /&gt;
  TServerLevel (TGraalVar):&lt;br /&gt;
    compsdead - boolean [R]&lt;br /&gt;
    height - integer [R]&lt;br /&gt;
    isnopkzone - boolean [R]&lt;br /&gt;
    issparringzone - boolean [R]&lt;br /&gt;
    nopkzone - boolean [R] - same like 'isnopkzone'&lt;br /&gt;
    tilelayercount - integer&lt;br /&gt;
    width - integer [R]&lt;br /&gt;
    findareanpcs(float, float, float, float) - returns object - returns an array of all npcs at the specified rectangle (x,y,width,height)&lt;br /&gt;
    getmappartfile(float, float) - returns string&lt;br /&gt;
    hitcompu(int, int, float, float)&lt;br /&gt;
    putbomb(int, float, float)&lt;br /&gt;
    putcomp(str, float, float)&lt;br /&gt;
    putexplosion(int, float, float)&lt;br /&gt;
    putexplosion2(int, int, float, float)&lt;br /&gt;
    puthorse(str, float, float)&lt;br /&gt;
    putnewcomp(str, float, float, str, int)&lt;br /&gt;
    reflectarrow(int)&lt;br /&gt;
    removearrow(int)&lt;br /&gt;
    removebomb(int)&lt;br /&gt;
    removecompus()&lt;br /&gt;
    removeexplo(int)&lt;br /&gt;
    removehorse(int)&lt;br /&gt;
    removeitem(int)&lt;br /&gt;
    setz(int, int, int, int, float, float, float, float)&lt;br /&gt;
    shoot(float, float, float, float, float, float, str, str) - shoots a projectile with x,y,z,angle,zangle,strength,ani,aniparams&lt;br /&gt;
    testbomb(float, float) - returns integer&lt;br /&gt;
    testexplo(float, float) - returns integer&lt;br /&gt;
    testhorse(float, float) - returns integer&lt;br /&gt;
    testitem(float, float) - returns integer&lt;br /&gt;
    testnpc(float, float) - returns integer&lt;br /&gt;
    testsign(float, float) - returns integer&lt;br /&gt;
    tiletype(float, float) - returns integer&lt;br /&gt;
&lt;br /&gt;
  TServerLevelLink (TGraalVar):&lt;br /&gt;
    destlevel - string [R]&lt;br /&gt;
    destx - float [R]&lt;br /&gt;
    desty - float [R]&lt;br /&gt;
    height - float [R]&lt;br /&gt;
    width - float [R]&lt;br /&gt;
    x - float [R]&lt;br /&gt;
    y - float [R]&lt;br /&gt;
&lt;br /&gt;
  TShapeMaterial (TGraalVar):&lt;br /&gt;
    specularpower - integer&lt;br /&gt;
&lt;br /&gt;
  TShowImg_Values (TGraalVar):&lt;br /&gt;
    alpha - float&lt;br /&gt;
    blue - float&lt;br /&gt;
    green - float&lt;br /&gt;
    mode - integer - the image drawing mode (0 - add, 1 - transparent, 2 - subtract, 3 - daynight)&lt;br /&gt;
    red - float&lt;br /&gt;
    rotation - float&lt;br /&gt;
    spin - float&lt;br /&gt;
    stretchx - float&lt;br /&gt;
    stretchy - float&lt;br /&gt;
    zoom - float&lt;br /&gt;
&lt;br /&gt;
    TShowImg_Flash (TShowImg_Values):&lt;br /&gt;
      flash - object [R]&lt;br /&gt;
&lt;br /&gt;
    TShowImg_Gani (TShowImg_Values):&lt;br /&gt;
      actor - object [R]&lt;br /&gt;
&lt;br /&gt;
    TShowImg_Image (TShowImg_Values):&lt;br /&gt;
      height - float&lt;br /&gt;
      parth - integer&lt;br /&gt;
      partw - integer&lt;br /&gt;
      partx - integer&lt;br /&gt;
      party - integer&lt;br /&gt;
      width - float&lt;br /&gt;
&lt;br /&gt;
    TShowImg_Poly (TShowImg_Values):&lt;br /&gt;
      parth - integer&lt;br /&gt;
      partw - integer&lt;br /&gt;
      partx - integer&lt;br /&gt;
      party - integer&lt;br /&gt;
&lt;br /&gt;
    TShowImg_Shape (TShowImg_Values):&lt;br /&gt;
      lightcolor - string&lt;br /&gt;
      lightdirection - string&lt;br /&gt;
      shadowdirection - string&lt;br /&gt;
&lt;br /&gt;
    TShowImg_Text (TShowImg_Values):&lt;br /&gt;
      parth - integer&lt;br /&gt;
      partw - integer&lt;br /&gt;
      partx - integer&lt;br /&gt;
      party - integer&lt;br /&gt;
      shadowcolor - string&lt;br /&gt;
      shadowoffset - string&lt;br /&gt;
      textshadow - boolean&lt;br /&gt;
&lt;br /&gt;
  TStaticVar (TGraalVar):&lt;br /&gt;
    destroy()&lt;br /&gt;
&lt;br /&gt;
    Array (TStaticVar):&lt;br /&gt;
      initialize(params...)&lt;br /&gt;
&lt;br /&gt;
    Color (TStaticVar):&lt;br /&gt;
      initialize(obj)&lt;br /&gt;
      setrgb(int)&lt;br /&gt;
&lt;br /&gt;
    Date (TStaticVar):&lt;br /&gt;
      initialize(params...)&lt;br /&gt;
&lt;br /&gt;
    Math (TStaticVar):&lt;br /&gt;
      abs(float) - returns float&lt;br /&gt;
      floor(float) - returns integer&lt;br /&gt;
      random() - returns float&lt;br /&gt;
      sin(float) - returns float&lt;br /&gt;
      sqrt(float) - returns float&lt;br /&gt;
&lt;br /&gt;
    Sound (TStaticVar):&lt;br /&gt;
      initialize(params...)&lt;br /&gt;
&lt;br /&gt;
    String (TStaticVar):&lt;br /&gt;
      initialize(params...)&lt;br /&gt;
&lt;br /&gt;
  TTilesLayer (TGraalVar):&lt;br /&gt;
    alpha - float&lt;br /&gt;
    blue - float&lt;br /&gt;
    green - float&lt;br /&gt;
    layerindex - integer [R]&lt;br /&gt;
    offset - string&lt;br /&gt;
    red - float&lt;br /&gt;
    x - float&lt;br /&gt;
    y - float&lt;br /&gt;
    z - float&lt;br /&gt;
    updateboard(int, int, int, int)&lt;br /&gt;
&lt;br /&gt;
  TUpdatePackage (TGraalVar):&lt;br /&gt;
    accounts - object [R]&lt;br /&gt;
    description - string [R]&lt;br /&gt;
    downloadcomplete - boolean [R]&lt;br /&gt;
    downloadedsize - integer [R]&lt;br /&gt;
    filecount - integer [R]&lt;br /&gt;
    filedownloadedsize - integer [R]&lt;br /&gt;
    filename - string [R]&lt;br /&gt;
    filetotalsize - integer [R]&lt;br /&gt;
    isuninstalled - boolean [R]&lt;br /&gt;
    lastdownloadfile - string [R]&lt;br /&gt;
    localversion - float [R]&lt;br /&gt;
    mode - string [R]&lt;br /&gt;
    name - string [R]&lt;br /&gt;
    parent - object [R]&lt;br /&gt;
    platform - string [R]&lt;br /&gt;
    protectoverwrite - boolean [R]&lt;br /&gt;
    totalsize - integer [R]&lt;br /&gt;
    usechecksum - boolean [R]&lt;br /&gt;
    version - float [R]&lt;br /&gt;
    reinstall() - returns boolean&lt;br /&gt;
    uninstall() - returns boolean&lt;br /&gt;
    update() - returns boolean&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==GUI Objects==&lt;br /&gt;
GUI Objects are currently well documented starting here [[Creation/Dev/Script/Client/GuiControl]].&lt;br /&gt;
&lt;br /&gt;
==Global==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  $pref::audio::choosenvoicecodec - integer&lt;br /&gt;
  $pref::audio::microactivatebyvolume - boolean&lt;br /&gt;
  $pref::audio::microactivationlevel - integer&lt;br /&gt;
  $pref::audio::microinputdevice - integer&lt;br /&gt;
  $pref::audio::microon - boolean&lt;br /&gt;
  $pref::audio::microvolumefactor - integer&lt;br /&gt;
  $pref::audio::midivolume - integer&lt;br /&gt;
  $pref::audio::mp3volume - integer&lt;br /&gt;
  $pref::audio::radiovolume - integer&lt;br /&gt;
  $pref::audio::reversestereo - boolean&lt;br /&gt;
  $pref::audio::sfxvolume - integer&lt;br /&gt;
  $pref::audio::voicevolume - integer&lt;br /&gt;
  $pref::capture::allowbyscript - boolean [R]&lt;br /&gt;
  $pref::capture::area - string&lt;br /&gt;
  $pref::capture::audiobitrate - integer&lt;br /&gt;
  $pref::capture::disabledaynight - boolean&lt;br /&gt;
  $pref::capture::format - string&lt;br /&gt;
  $pref::capture::fps - integer&lt;br /&gt;
  $pref::capture::hideinterface - boolean&lt;br /&gt;
  $pref::capture::recordaudio - boolean&lt;br /&gt;
  $pref::capture::showmouse - boolean&lt;br /&gt;
  $pref::capture::size - string&lt;br /&gt;
  $pref::capture::videobitrate - integer&lt;br /&gt;
  $pref::graal::allowglobalpms - boolean&lt;br /&gt;
  $pref::graal::automapping - boolean&lt;br /&gt;
  $pref::graal::defaultfontname - string&lt;br /&gt;
  $pref::graal::defaultfontsize - integer&lt;br /&gt;
  $pref::graal::dontconnectlevels - boolean&lt;br /&gt;
  $pref::graal::dontloadlistheads - boolean&lt;br /&gt;
  $pref::graal::dontsavepasswords - boolean&lt;br /&gt;
  $pref::graal::dontsavepms - boolean&lt;br /&gt;
  $pref::graal::fixedport - boolean&lt;br /&gt;
  $pref::graal::fixedudpport - integer&lt;br /&gt;
  $pref::graal::language - string&lt;br /&gt;
  $pref::graal::limitnicknames - boolean&lt;br /&gt;
  $pref::graal::loadbuddylistfromserver - boolean&lt;br /&gt;
  $pref::graal::nicknamelimit - integer&lt;br /&gt;
  $pref::graal::nomassmessages - boolean&lt;br /&gt;
  $pref::graal::notoalls - boolean&lt;br /&gt;
  $pref::graal::noudp - boolean&lt;br /&gt;
  $pref::graal::showyourselfonbuddylists - boolean&lt;br /&gt;
  $pref::input::mousesensitivity - float&lt;br /&gt;
  $pref::interior::lockarrays - boolean&lt;br /&gt;
  $pref::video::defaultguistyle - string&lt;br /&gt;
  $pref::video::detailfactor - float&lt;br /&gt;
  $pref::video::fogdistance - float&lt;br /&gt;
  $pref::video::fullscreenmode - string&lt;br /&gt;
  $pref::video::resolution - integer&lt;br /&gt;
  $pref::video::screenshotformat - string&lt;br /&gt;
  $pref::video::visibledistance - float&lt;br /&gt;
  $pref::video::windowmode - string&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Fowlplay4</name></author>
	</entry>
	<entry>
		<id>https://graalonline.net/index.php?title=Creation/Dev/Script/Clientside_Functions&amp;diff=17960</id>
		<title>Creation/Dev/Script/Clientside Functions</title>
		<link rel="alternate" type="text/html" href="https://graalonline.net/index.php?title=Creation/Dev/Script/Clientside_Functions&amp;diff=17960"/>
		<updated>2011-02-28T22:22:26Z</updated>

		<summary type="html">&lt;p&gt;Fowlplay4: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Scripting Reference]]&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;2&amp;quot; width=&amp;quot;50%&amp;quot;&lt;br /&gt;
|[R]&lt;br /&gt;
| denotes it is read-only.&lt;br /&gt;
|-&lt;br /&gt;
|[3D]&lt;br /&gt;
| denotes it is a Graal3D function.&lt;br /&gt;
|-&lt;br /&gt;
|[opengl]&lt;br /&gt;
| denotes it is functional only in opengl mode.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Variables=&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;2&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
| '''Variable'''&lt;br /&gt;
|width=&amp;quot;100px&amp;quot;|'''Type'''&lt;br /&gt;
| '''Notes'''&lt;br /&gt;
|-&lt;br /&gt;
| allfeatures&lt;br /&gt;
| ''integer [R]''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| allplayerscount&lt;br /&gt;
| ''integer [R]''&lt;br /&gt;
| Returns the count of all players on your playerlist, including IRC bots.&lt;br /&gt;
|-&lt;br /&gt;
| allrenderobjecttypes&lt;br /&gt;
| ''integer [R]''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| allstats &lt;br /&gt;
| ''integer [R]''&lt;br /&gt;
| Used with showstats() in order to show all stats.&lt;br /&gt;
|-&lt;br /&gt;
| canspin&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| Returns true of false if the player has spin attack.&lt;br /&gt;
|-&lt;br /&gt;
| carriesblackstone&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| Returns whether the player is carrying a black stone.&lt;br /&gt;
|-&lt;br /&gt;
| carriesbush&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| Returns whether the player is carrying a bush.&lt;br /&gt;
|-&lt;br /&gt;
| carriesnpc&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| Returns whether the player is carrying an NPC&lt;br /&gt;
|-&lt;br /&gt;
| carriessign&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| Returns whether the player is carrying a sign.&lt;br /&gt;
|-&lt;br /&gt;
| carriesstone&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| Returns whether the player is carrying a stone.&lt;br /&gt;
|-&lt;br /&gt;
| carriesvase&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| Returns whether the player is carrying a vase.&lt;br /&gt;
|-&lt;br /&gt;
| downloadfile&lt;br /&gt;
| ''string [R]''&lt;br /&gt;
| Returns the currently downloaded file.&lt;br /&gt;
|-&lt;br /&gt;
| downloadpos&lt;br /&gt;
| ''integer [R]''&lt;br /&gt;
| Returns the position of the currently downloaded file.&lt;br /&gt;
|-&lt;br /&gt;
| downloadsize&lt;br /&gt;
| ''integer [R]''&lt;br /&gt;
| Returns the size of the currently downloaded file.&lt;br /&gt;
|-&lt;br /&gt;
| editingmission&lt;br /&gt;
| ''boolean''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| emoticonchar&lt;br /&gt;
| ''string [R]''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| focusx&lt;br /&gt;
| ''float [R]''&lt;br /&gt;
| Position of the camera in tile units.&lt;br /&gt;
|-&lt;br /&gt;
| focusy&lt;br /&gt;
| ''float [R]''&lt;br /&gt;
| Position of the camera in tile units.&lt;br /&gt;
|-&lt;br /&gt;
| ghostsnear&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| If a ghost(observer) is in the same level as the player.&lt;br /&gt;
|-&lt;br /&gt;
| graalplugincookie&lt;br /&gt;
| ''string [R]''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| graalversion&lt;br /&gt;
| ''float [R]''&lt;br /&gt;
| Version of Graal the player is using.&lt;br /&gt;
|-&lt;br /&gt;
| gravity&lt;br /&gt;
| ''float''&lt;br /&gt;
| The gravity value that effects how fast projectiles fall. It universally effects all projectiles.&lt;br /&gt;
|-&lt;br /&gt;
| installedlanguages&lt;br /&gt;
| ''string [R]''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| isapplicationactive&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| Is Graal window active?&lt;br /&gt;
|-&lt;br /&gt;
| iscarrying&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| Returns true of false if the player is carrying something.&lt;br /&gt;
|-&lt;br /&gt;
| isfocused&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| isgraal3d&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| isgraalplugin&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| isleader&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| Player was the first to enter the level.&lt;br /&gt;
|-&lt;br /&gt;
| isonmap&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| Player is on a map.&lt;br /&gt;
|-&lt;br /&gt;
| isopengl&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| Graal is in opengl mode.&lt;br /&gt;
|-&lt;br /&gt;
| isrecordingvideo&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| Player is currently recording(alt+6) Graal.&lt;br /&gt;
|-&lt;br /&gt;
| jpegquality&lt;br /&gt;
| ''integer''&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| isgraalplugin&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| lastdownloadfile&lt;br /&gt;
| ''string [R]''&lt;br /&gt;
| The last file downloaded.&lt;br /&gt;
|-&lt;br /&gt;
| leftmousebutton&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| If the left mouse button is pressed.&lt;br /&gt;
|-&lt;br /&gt;
| leftmousebuttonglobal&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| If the left mouse button is pressed. Returns whether mouse is in focus of GUIs or not.&lt;br /&gt;
|-&lt;br /&gt;
| levelorgx&lt;br /&gt;
| ''float [R]''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| levelorgy&lt;br /&gt;
| ''float [R]''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| lighteffectsenabled&lt;br /&gt;
| ''boolean''&lt;br /&gt;
| Whether the player has their lights enabled via options.&lt;br /&gt;
|-&lt;br /&gt;
| middlemousebutton&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| If the middle mouse button is pressed&lt;br /&gt;
|-&lt;br /&gt;
| middlemousebuttonglobal&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| If the middle mouse button is pressed. Returns whether mouse is in focus of GUIs or not.&lt;br /&gt;
|-&lt;br /&gt;
| mousebuttons &lt;br /&gt;
| ''integer [R]''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| mousebuttonsglobal&lt;br /&gt;
| ''integer [R]''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| mousepitch&lt;br /&gt;
| ''float [R] [3D]''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| mousescreenx &lt;br /&gt;
| ''integer''&lt;br /&gt;
| Position of the mouse in the Graal screen, in pixel units on the x-axis.&lt;br /&gt;
|-&lt;br /&gt;
| mousescreeny &lt;br /&gt;
| ''integer''&lt;br /&gt;
| Position of the mouse in the Graal screen, in pixel units on the y-axis.&lt;br /&gt;
|-&lt;br /&gt;
| mousewheeldelta&lt;br /&gt;
| ''integer [R]''&lt;br /&gt;
| How much the mouse wheel has been scrolled.&lt;br /&gt;
|-&lt;br /&gt;
| mousex&lt;br /&gt;
| ''float''&lt;br /&gt;
| Position of the mouse in the level, in tile units, on the x-axis.&lt;br /&gt;
|-&lt;br /&gt;
| mousey&lt;br /&gt;
| ''float''&lt;br /&gt;
| Position of the mouse in the level, in tile units, on the y-axis&lt;br /&gt;
|-&lt;br /&gt;
| mouseyaw&lt;br /&gt;
| ''float [R] [3D]''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| musiclen &lt;br /&gt;
| ''integer [R]''&lt;br /&gt;
| Length of current playing '''MP3'''&lt;br /&gt;
|-&lt;br /&gt;
| musicpos&lt;br /&gt;
| ''integer [R]''&lt;br /&gt;
| Position of current playing '''MP3'''&lt;br /&gt;
|-&lt;br /&gt;
| particleeffectsenabled&lt;br /&gt;
| ''boolean''&lt;br /&gt;
| If player has particles enabled in their options.&lt;br /&gt;
|-&lt;br /&gt;
| rightmousebutton &lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| If the right mouse button is pressed&lt;br /&gt;
|-&lt;br /&gt;
| rightmousebuttonglobal &lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| If the right mouse button is pressed. Returns whether mouse is in focus of GUIs or not.&lt;br /&gt;
|-&lt;br /&gt;
| screenheight&lt;br /&gt;
| ''integer [R]''&lt;br /&gt;
| Height of the Graal screen in pixel units.&lt;br /&gt;
|-&lt;br /&gt;
| screenwidth&lt;br /&gt;
| ''integer [R]''&lt;br /&gt;
| Width of the Graal screen in pixel units.&lt;br /&gt;
|-&lt;br /&gt;
| scriptedcontrols &lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| scriptedplayerlist&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| Whether the player has the scripted playerlist enabled.&lt;br /&gt;
|-&lt;br /&gt;
| scriptlogwritetoreadonly&lt;br /&gt;
| ''boolean''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| selectedlistplayers&lt;br /&gt;
| ''object''&lt;br /&gt;
| An object of all players selected on the playerlist.&lt;br /&gt;
|-&lt;br /&gt;
| selectedsword &lt;br /&gt;
| ''integer''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| selectedweapon &lt;br /&gt;
| ''integer''&lt;br /&gt;
| Index of the currently selected weapon.&lt;br /&gt;
|-&lt;br /&gt;
| servername&lt;br /&gt;
| ''string [R]''&lt;br /&gt;
| Name of the server.&lt;br /&gt;
|-&lt;br /&gt;
| serverstartconnect &lt;br /&gt;
| ''string''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| serverstartparams &lt;br /&gt;
| ''string''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| shotbybaddy&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| If the player is shot by a baddy(default) arrow.&lt;br /&gt;
|-&lt;br /&gt;
| shotbyplayer&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| If the player is shot by another players arrow.&lt;br /&gt;
|-&lt;br /&gt;
| showterraingrid&lt;br /&gt;
| ''boolean''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| spritesimage&lt;br /&gt;
| ''string''&lt;br /&gt;
| Filename of the currently set sprite image.&lt;br /&gt;
|-&lt;br /&gt;
| statusimage&lt;br /&gt;
| ''string''&lt;br /&gt;
| Filename of the currently set state image.&lt;br /&gt;
|-&lt;br /&gt;
| timevar&lt;br /&gt;
| ''integer [R].''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| timevar2&lt;br /&gt;
| ''float [R]''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| timevar3&lt;br /&gt;
| ''float [R] [3D]''&lt;br /&gt;
| Synchronized time which works on both server and client-side, precision is milliseconds.&lt;br /&gt;
|-&lt;br /&gt;
| wasshooted&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| If the player is shot by a default arrow.&lt;br /&gt;
|-&lt;br /&gt;
| waterheight&lt;br /&gt;
| ''float''&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| weapons&lt;br /&gt;
| ''object [R]''&lt;br /&gt;
| all the players weapons, this includes login inherited weapons.&lt;br /&gt;
|-&lt;br /&gt;
| weaponsenabled&lt;br /&gt;
| ''boolean''&lt;br /&gt;
| If the players weapons are enabled via disableweapons()/enableweapons().&lt;br /&gt;
|-&lt;br /&gt;
| weathereffectsenabled&lt;br /&gt;
| ''boolean''&lt;br /&gt;
| If weather is enabled in the players options.&lt;br /&gt;
|-&lt;br /&gt;
| worldclockstopped&lt;br /&gt;
| ''boolean''&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| worldhour &lt;br /&gt;
| ''integer''&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| worldminute &lt;br /&gt;
| ''float''&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| worldminutesofday &lt;br /&gt;
| ''float''&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| worldrealsecondsperday &lt;br /&gt;
| ''float''&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Functions=&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;2&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
| '''Variable'''&lt;br /&gt;
|width=&amp;quot;100px&amp;quot;|'''Type'''&lt;br /&gt;
| '''Notes'''&lt;br /&gt;
|-&lt;br /&gt;
| addcontrol(object)&lt;br /&gt;
|&lt;br /&gt;
| adds 'object' to the parent control.&lt;br /&gt;
|-&lt;br /&gt;
| addmaterialmapping(string, string)&lt;br /&gt;
| [3D]&lt;br /&gt;
| returns boolean.&lt;br /&gt;
|-&lt;br /&gt;
| addtiledef(string image, string prefix, int format)&lt;br /&gt;
| &lt;br /&gt;
| Adds a tileset definition with the supplied tileset image, level prefix and tileset format (0=pics1, 1=new world, 5=terrain).&lt;br /&gt;
|-&lt;br /&gt;
| addtiledef2(string image, string prefix, int x, int y)&lt;br /&gt;
| &lt;br /&gt;
| Overlays an image on the tileset with the supplied tileset image and level prefix. Parameters 'x' and 'y' represent the x and y position on the tileset of where to place the new image.&lt;br /&gt;
|-&lt;br /&gt;
| aindexof(float, array)&lt;br /&gt;
| &lt;br /&gt;
| Returns integer - the position of 'float' in the array.&lt;br /&gt;
|-&lt;br /&gt;
| arccos(float)&lt;br /&gt;
| &lt;br /&gt;
| Returns float - the arc cosine of 'float'.&lt;br /&gt;
|-&lt;br /&gt;
| arcsin(float)&lt;br /&gt;
| &lt;br /&gt;
| Returns float - the arc sine of 'float'.&lt;br /&gt;
|-&lt;br /&gt;
| attachplayertoobj(integer1, integer2)&lt;br /&gt;
| &lt;br /&gt;
| Attaches the player to the object with the matching ID where integer1 is the object type (currently only NPCs - 0) and integer2 is the ID of the desired object.&lt;br /&gt;
|-&lt;br /&gt;
| base64decode(string)&lt;br /&gt;
| &lt;br /&gt;
| Returns string - Decodes a base64 string.&lt;br /&gt;
|-&lt;br /&gt;
| base64encode(string)&lt;br /&gt;
| &lt;br /&gt;
| Returns string - Encodes string in to several characters of a 64 printable character set (A-Z, a-z, 0-9, + and /, while &amp;quot;=&amp;quot; is a special suffix code)&lt;br /&gt;
|-&lt;br /&gt;
| boxcontains(string, string)&lt;br /&gt;
| &lt;br /&gt;
| returns boolean.&lt;br /&gt;
|-&lt;br /&gt;
| boxcontainsvector(string, string)&lt;br /&gt;
| &lt;br /&gt;
| returns boolean&lt;br /&gt;
|-&lt;br /&gt;
| boxintersect(string, string)&lt;br /&gt;
| &lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| boxoverlaps(string, string)&lt;br /&gt;
| &lt;br /&gt;
| returns boolean&lt;br /&gt;
|-&lt;br /&gt;
| boxscale(string, string)&lt;br /&gt;
| &lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| callnpc(int index, string function)&lt;br /&gt;
| &lt;br /&gt;
| Calls a function from an NPC where 'index' is the NPC's index and 'function' is the function name.&lt;br /&gt;
|-&lt;br /&gt;
| callweapon(int index, string function)&lt;br /&gt;
| &lt;br /&gt;
| Calls a function from a weapon where 'index' is the weapon's index and 'function' is the function name.&lt;br /&gt;
|-&lt;br /&gt;
| castray({x,y,x}, {x,y,z}, string type)&lt;br /&gt;
| [3D]&lt;br /&gt;
| returns object - specify the start and end of the ray, and the object types (e.g. &amp;quot;staticts,terrain,interior&amp;quot;)&lt;br /&gt;
|-&lt;br /&gt;
| checksum(string)&lt;br /&gt;
| &lt;br /&gt;
| returns float&lt;br /&gt;
|-&lt;br /&gt;
| contains(string2, string1)&lt;br /&gt;
| &lt;br /&gt;
| returns boolean - True if string1 is contained within string2.&lt;br /&gt;
|-&lt;br /&gt;
| copystrings(string, string)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| cursoroff()&lt;br /&gt;
| [opengl]&lt;br /&gt;
| Disables the visible mouse cursor.&lt;br /&gt;
|-&lt;br /&gt;
| cursoron()&lt;br /&gt;
| [opengl]&lt;br /&gt;
| Enables the visible mouse cursor.&lt;br /&gt;
|-&lt;br /&gt;
| degtorad(float)&lt;br /&gt;
| &lt;br /&gt;
| returns float - Converts angle measurements of degrees to radians&lt;br /&gt;
|-&lt;br /&gt;
| detachplayer()&lt;br /&gt;
| &lt;br /&gt;
| Detaches a player from an attached object.&lt;br /&gt;
|-&lt;br /&gt;
| disabledefmovement()&lt;br /&gt;
| &lt;br /&gt;
| Disables the default movement system and controls(including weapons, sword, grab. Does not include Q-menu, pause, map...).&lt;br /&gt;
|-&lt;br /&gt;
| disablemap()&lt;br /&gt;
| &lt;br /&gt;
| Disables the default map (M).&lt;br /&gt;
|-&lt;br /&gt;
| disablepause()&lt;br /&gt;
| &lt;br /&gt;
| Disables the default pause (P).&lt;br /&gt;
|-&lt;br /&gt;
| disableselectweapons()&lt;br /&gt;
| &lt;br /&gt;
| Disables the default Q-menu (Q).&lt;br /&gt;
|-&lt;br /&gt;
| disableweapons()&lt;br /&gt;
| &lt;br /&gt;
| Disables the default sword (S) and weapons (D).&lt;br /&gt;
|-&lt;br /&gt;
| echo(string)&lt;br /&gt;
| &lt;br /&gt;
| echos 'string' to the debug window(F2).&lt;br /&gt;
|-&lt;br /&gt;
| enabledefmovement()&lt;br /&gt;
| &lt;br /&gt;
| Enables the default movement system.&lt;br /&gt;
|-&lt;br /&gt;
| [[Creation/Dev/Script/Functions/enablefeatures(int)|enablefeatures(int)]]&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| enablemap()&lt;br /&gt;
| &lt;br /&gt;
| Enables the default map system(M).&lt;br /&gt;
|-&lt;br /&gt;
| enablepause()&lt;br /&gt;
| &lt;br /&gt;
| Enables the default pause system(P).&lt;br /&gt;
|-&lt;br /&gt;
| enableselectweapons()&lt;br /&gt;
| &lt;br /&gt;
| Enables the default Q-menu(Q).&lt;br /&gt;
|-&lt;br /&gt;
| enableweapons()&lt;br /&gt;
| &lt;br /&gt;
| Enables the default sword(S) and weapons(D).&lt;br /&gt;
|-&lt;br /&gt;
| escapestring(string)&lt;br /&gt;
| &lt;br /&gt;
| returns string - adds \\ in front of &amp;quot;, ' and \\, and removes non-printable characters&lt;br /&gt;
|-&lt;br /&gt;
| explodebomb(integer)&lt;br /&gt;
| &lt;br /&gt;
| explodes the bomb with the id of 'integer'.&lt;br /&gt;
|-&lt;br /&gt;
| extractfilebase(string)&lt;br /&gt;
| &lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| extractfileext(string)&lt;br /&gt;
| &lt;br /&gt;
| Takes in a file name, and returns its extension. &lt;br /&gt;
|-&lt;br /&gt;
| extractfilepath(string)&lt;br /&gt;
| &lt;br /&gt;
| returns string &lt;br /&gt;
|-&lt;br /&gt;
| fileexists(string)&lt;br /&gt;
| &lt;br /&gt;
| returns boolean of whether the file 'str' exists in the players Graal/ directory(does not search subfolders).&lt;br /&gt;
|-&lt;br /&gt;
| filesize(string)&lt;br /&gt;
| &lt;br /&gt;
| Returns the size(int) of the file 'string' in the players Graal/ directory(does not search subfolders).&lt;br /&gt;
|-&lt;br /&gt;
| fileupdate(string)&lt;br /&gt;
| &lt;br /&gt;
| returns boolean&lt;br /&gt;
|-&lt;br /&gt;
| findani(string)&lt;br /&gt;
| &lt;br /&gt;
| returns object&lt;br /&gt;
|-&lt;br /&gt;
| findfiles(string, integer)&lt;br /&gt;
| &lt;br /&gt;
| returns object&lt;br /&gt;
|-&lt;br /&gt;
| findlevel(string)&lt;br /&gt;
| &lt;br /&gt;
| returns object&lt;br /&gt;
|-&lt;br /&gt;
| findnearestplayer(float1, float2)&lt;br /&gt;
| &lt;br /&gt;
| Returns the closest player's object relevant to float1 and float2.&lt;br /&gt;
|-&lt;br /&gt;
| findnearestplayers(float, float)&lt;br /&gt;
| &lt;br /&gt;
| Returns the closest players' object relevant to float1 and float2.&lt;br /&gt;
|-&lt;br /&gt;
| findnpcbyid(integer)&lt;br /&gt;
|&lt;br /&gt;
| Returns the NPC object with the ID of 'int'.&lt;br /&gt;
|-&lt;br /&gt;
| findpathinarray(obj1, obj2, obj3, obj4, obj5, int, int, int)&lt;br /&gt;
|&lt;br /&gt;
| Returns object - Simple path-finding: Obj1 being tiles that allow walking, Obj2 being tiles that don't allow walking, Obj3; tiles that shouldn't be allowed to walked on, Obj4; tiles that are able to be walked on, Obj5; tiles where we may stop. Integers are relevant to the startx, starty and maximum path length. - Arrays for allowed/non-allowed tiles are only checked if they aren't null.&lt;br /&gt;
|-&lt;br /&gt;
| findplayer(string)&lt;br /&gt;
|&lt;br /&gt;
| Returns the player object with the account equal to string.&lt;br /&gt;
|-&lt;br /&gt;
| findplayerbycommunityname(string)&lt;br /&gt;
|&lt;br /&gt;
| Returns the player object with the community name equal to string.&lt;br /&gt;
|-&lt;br /&gt;
| findplayerbyid(integer)&lt;br /&gt;
|&lt;br /&gt;
| Returns the player object with the ID equal to integer.&lt;br /&gt;
|-&lt;br /&gt;
| findweapon(string)&lt;br /&gt;
|&lt;br /&gt;
| Returns the weapon object with the name equal to string.&lt;br /&gt;
|-&lt;br /&gt;
| format(string, string, ...)&lt;br /&gt;
|&lt;br /&gt;
| See [[Creation/Dev/Output_Methods#format.28.29_function|format()]]. &lt;br /&gt;
|- &lt;br /&gt;
| format2(string, array)&lt;br /&gt;
| &lt;br /&gt;
| Like format(), except that this expects the format string and an array of variables instead of passing the variables as separate parameters.&lt;br /&gt;
|-&lt;br /&gt;
| freefileresources(string)&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| freezeplayer(float)&lt;br /&gt;
|&lt;br /&gt;
| Freezes the player for the number of seconds specified by float.&lt;br /&gt;
|-&lt;br /&gt;
| get3dobjectat(float, float, boolean)&lt;br /&gt;
| [3D]&lt;br /&gt;
| Gets the 3d object at the specified screen position, third parameter true if it should do box collision.&lt;br /&gt;
|-&lt;br /&gt;
| get3dobjectatmouse(boolean)&lt;br /&gt;
| [3D]&lt;br /&gt;
| Gets the 3d object at the mouse.  Parameter true if it should do box collision.&lt;br /&gt;
|-&lt;br /&gt;
| get3dobjectbyray(string, string)&lt;br /&gt;
| [3D]&lt;br /&gt;
| returns object&lt;br /&gt;
|-&lt;br /&gt;
| get3dobjectsbybox(string, string)&lt;br /&gt;
| [3D]&lt;br /&gt;
| 1st parameter defines the box {minx,miny,minz, maxx,maxy,maxz}.  Second parameter specifies the type of object to find (e.g. &amp;quot;staticts,terrain,interior&amp;quot;)&lt;br /&gt;
|-&lt;br /&gt;
| get3dscreenposition(string, boolean)&lt;br /&gt;
| [3D]&lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| getanglesfromvector({x, y, z})&lt;br /&gt;
|&lt;br /&gt;
| Returns an array that contains the angles the 3D vector {x, y, z} makes with the X-Y and X-Z axes.&lt;br /&gt;
|-&lt;br /&gt;
| getascii(string)&lt;br /&gt;
|&lt;br /&gt;
| Returns the [http://www.asciitable.com/ ascii] code for string.&lt;br /&gt;
|-&lt;br /&gt;
| getbasepackage()&lt;br /&gt;
|&lt;br /&gt;
| returns object&lt;br /&gt;
|-&lt;br /&gt;
| getboxcenter(string)&lt;br /&gt;
|&lt;br /&gt;
| Returns an array containing the center of a 3D box specified by string ({x0,y0,z0,x1,y1,z1,...}).&lt;br /&gt;
|-&lt;br /&gt;
| getdesktopresolution()&lt;br /&gt;
|&lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| getdisplaydevicelist()&lt;br /&gt;
|&lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| getdownloadedupdatepackagesize()&lt;br /&gt;
|&lt;br /&gt;
| Returns the size of the downloaded update package.&lt;br /&gt;
|-&lt;br /&gt;
| getdownloadingpackage()&lt;br /&gt;
|&lt;br /&gt;
| Returns a reference to current update package being downloaded.&lt;br /&gt;
|-&lt;br /&gt;
| getdownloadingpackagescount()&lt;br /&gt;
|&lt;br /&gt;
| Returns a count of the number of update packages to download.&lt;br /&gt;
|-&lt;br /&gt;
| getdropz(string)&lt;br /&gt;
|&lt;br /&gt;
| returns float&lt;br /&gt;
|-&lt;br /&gt;
| getExtension(string)&lt;br /&gt;
|&lt;br /&gt;
| This function is the same as extractFileExt().  Takes in a file name, and returns its extension.&lt;br /&gt;
|-&lt;br /&gt;
| getfilemodtime(string)&lt;br /&gt;
|&lt;br /&gt;
| Returns a timestamp of when the file was last modified (in unix time compatible to timevar2). This function accepts both exact file path and plain file name.&lt;br /&gt;
|-&lt;br /&gt;
| gethttprequest(string, integer, string)&lt;br /&gt;
| &lt;br /&gt;
| returns object (This function is the same as requestHttp())&lt;br /&gt;
|-&lt;br /&gt;
| getimgheight(string)&lt;br /&gt;
|&lt;br /&gt;
| Returns the height (in pixels) of the filename indicated by string.&lt;br /&gt;
|-&lt;br /&gt;
| getimgpixel(string, integer, integer)&lt;br /&gt;
|&lt;br /&gt;
| returns object&lt;br /&gt;
|-&lt;br /&gt;
| getimgwidth(string)&lt;br /&gt;
|&lt;br /&gt;
| Returns the width(in pixels) of the filename indicated by string.&lt;br /&gt;
|-&lt;br /&gt;
| getkeycode(string)&lt;br /&gt;
|&lt;br /&gt;
| Returns the keycode of the key indicated by string.  The keycode returned can be used in keydown2().&lt;br /&gt;
|-&lt;br /&gt;
| getloginaccountname()&lt;br /&gt;
|&lt;br /&gt;
| Presumably used for the login server.  Use player.account instead.&lt;br /&gt;
|-&lt;br /&gt;
| getmapx(string)&lt;br /&gt;
| &lt;br /&gt;
| Gets the x coordinate location in the gmap of the level indicated by string.  The top-left level starts at (0, 0).&lt;br /&gt;
|-&lt;br /&gt;
| getmapy(string)&lt;br /&gt;
|&lt;br /&gt;
| Gets the y coordinate location in the gmap of the level indicated by string.  The top-left level starts at (0, 0).&lt;br /&gt;
|-&lt;br /&gt;
| getmusicfilename()&lt;br /&gt;
|&lt;br /&gt;
| Returns the filename of the music currently playing.&lt;br /&gt;
|-&lt;br /&gt;
| getmusicstatus()&lt;br /&gt;
|&lt;br /&gt;
| Returns the status of the music currently playing.&lt;br /&gt;
|-&lt;br /&gt;
| getmusictags()&lt;br /&gt;
|&lt;br /&gt;
| Returns the tags of the music currently playing.  This function can be used to retrieve the title and artist info of the music.&lt;br /&gt;
|-&lt;br /&gt;
| getnearestplayer(float, float)&lt;br /&gt;
|&lt;br /&gt;
| Deprecated.  Use findnearestplayer() instead.&lt;br /&gt;
|-&lt;br /&gt;
| getnearestplayers(float, float)&lt;br /&gt;
|&lt;br /&gt;
| Deprecated.  Use findnearestplayers() instead.&lt;br /&gt;
|-&lt;br /&gt;
| getpackagesdownloadcomplete()&lt;br /&gt;
|&lt;br /&gt;
| Returns 'true' if the package downloads are complete.&lt;br /&gt;
|-&lt;br /&gt;
| getpackagesdownloaded()&lt;br /&gt;
|&lt;br /&gt;
| Returns 'true' if the most recent packages are already downloaded.&lt;br /&gt;
|-&lt;br /&gt;
| getplatform()&lt;br /&gt;
|&lt;br /&gt;
| Returns the platform that the player is using.  (i.e. windows, mac, or linux)&lt;br /&gt;
|-&lt;br /&gt;
| getresolutionlist(string)&lt;br /&gt;
|&lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| getservername()&lt;br /&gt;
|&lt;br /&gt;
| Returns the name of the server the player is currently connected to.&lt;br /&gt;
|-&lt;br /&gt;
| getstringkeys(string)&lt;br /&gt;
|&lt;br /&gt;
| Returns an array of the variables that begins with the supplied string.&lt;br /&gt;
|-&lt;br /&gt;
| getterraintexture(float, float)&lt;br /&gt;
|&lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| getterraintextureindex(float, float)&lt;br /&gt;
|&lt;br /&gt;
| returns integer&lt;br /&gt;
|-&lt;br /&gt;
| gettextheight(float zoom, string style, string font)&lt;br /&gt;
|&lt;br /&gt;
| returns integer - The height in pixels of the text with the given zoom, style and font.&lt;br /&gt;
|-&lt;br /&gt;
| gettextwidth(float zoom, string style, string font, string text)&lt;br /&gt;
|&lt;br /&gt;
| returns integer - The width of the text with the given zoom, style, font and text.&lt;br /&gt;
|-&lt;br /&gt;
| gettileset()&lt;br /&gt;
|&lt;br /&gt;
| returns string - the current main tileset (pics1.png, picso.png etc.)&lt;br /&gt;
|-&lt;br /&gt;
| gettilesettype()&lt;br /&gt;
|&lt;br /&gt;
| returns integer - the current tileset type (pics1.png:0, picso.png:5 etc.)&lt;br /&gt;
|-&lt;br /&gt;
| gettotalupdatepackagesize()&lt;br /&gt;
|&lt;br /&gt;
| returns integer - The total size of the update packages.&lt;br /&gt;
|-&lt;br /&gt;
| getupdatepackage(string name)&lt;br /&gt;
|&lt;br /&gt;
| returns object - A reference to the update package with the given name.&lt;br /&gt;
|-&lt;br /&gt;
| getvectorfromangles(float, float)&lt;br /&gt;
|&lt;br /&gt;
| returns string&lt;br /&gt;
|- &lt;br /&gt;
| getz(float, float)&lt;br /&gt;
|&lt;br /&gt;
| returns float&lt;br /&gt;
|-&lt;br /&gt;
| graalcontrolhasfocus(bool)&lt;br /&gt;
|&lt;br /&gt;
| returns boolean - Whether or not the graal control has focus.  Parameter says if it should also check if the chat bar has the focus&lt;br /&gt;
|-&lt;br /&gt;
| hideplayer(float time)&lt;br /&gt;
|&lt;br /&gt;
| Hides player for the specified amount of time.&lt;br /&gt;
|-&lt;br /&gt;
| hidesword(float time)&lt;br /&gt;
|&lt;br /&gt;
| Hides the player's sword for the specified amount of time.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;  hitnpc(int, float, float, float)&lt;br /&gt;
  hitobjects(float, float, float)&lt;br /&gt;
  hitplayer(int, float, float, float)&lt;br /&gt;
  isadminguild(str) - returns boolean&lt;br /&gt;
  isclassloaded(str) - returns boolean&lt;br /&gt;
  iscursoron() - returns boolean&lt;br /&gt;
  isdevicefullscreenonly(str) - returns boolean&lt;br /&gt;
  isdownloading(str) - returns boolean - checks if a file is currently downloaded or requested from the server&lt;br /&gt;
  isdownloadingfiles() - returns boolean - checks if Graal is currently downloading or requesting files from the server&lt;br /&gt;
  isfullscreenmode() - returns boolean&lt;br /&gt;
  isimgpixeltransparent(str, int, int) - returns boolean&lt;br /&gt;
  isimgrectangletransparent(str, int, int, int, int) - returns boolean&lt;br /&gt;
  ismusicplaying() - returns boolean&lt;br /&gt;
  isobject(str) - returns boolean&lt;br /&gt;
  issoundplaying(str) - returns boolean&lt;br /&gt;
  keydown(int) - returns boolean&lt;br /&gt;
  keydown2(int, bool) - returns boolean&lt;br /&gt;
  keydown2global(int, bool) - returns boolean&lt;br /&gt;
  keydownglobal(int) - returns boolean&lt;br /&gt;
  keyname(int) - returns string&lt;br /&gt;
  lay2(str, float, float)&lt;br /&gt;
  lightscene() - returns boolean&lt;br /&gt;
  loadclass(str)&lt;br /&gt;
  loadmap(str)&lt;br /&gt;
  loadtranslation(str)&lt;br /&gt;
  lowercase(str) - returns string&lt;br /&gt;
  ltmfs(bool)&lt;br /&gt;
  ltmmax(float, float)&lt;br /&gt;
  ltmmin(float, float)&lt;br /&gt;
  makescreenshot2(str, int, float, float, float, int, int)&lt;br /&gt;
  matrixcreate(str, str) - returns string&lt;br /&gt;
  matrixcreatefromeuler(str) - returns string&lt;br /&gt;
  matrixmulpoint(str, str) - returns string&lt;br /&gt;
  matrixmultiply(str, str) - returns string&lt;br /&gt;
  matrixmulvector(str, str) - returns string&lt;br /&gt;
  md5(str) - returns string&lt;br /&gt;
  noplayerkilling()&lt;br /&gt;
  onwall(float, float) - returns boolean&lt;br /&gt;
  onwall2(float, float, float, float) - returns boolean&lt;br /&gt;
  onwater(float, float) - returns boolean&lt;br /&gt;
  onwater2(float, float, float, float) - returns boolean&lt;br /&gt;
  opengraalurl(str)&lt;br /&gt;
  openurl(str)&lt;br /&gt;
  openurl2(str, int, int)&lt;br /&gt;
  play(str)&lt;br /&gt;
  play2(str, float, float, float)&lt;br /&gt;
  play3d(str, bool, str, str)&lt;br /&gt;
  playlooped(str)&lt;br /&gt;
  playlooped2(str, float, float, float)&lt;br /&gt;
  popdialog()&lt;br /&gt;
  pushdialog(obj)&lt;br /&gt;
  putleaps(int, float, float)&lt;br /&gt;
  radtodeg(float) - returns float&lt;br /&gt;
  randomstring(str) - returns string&lt;br /&gt;
  removetiledefs(str)&lt;br /&gt;
  replaceani(str, str)&lt;br /&gt;
  requestfiledeletion(str)&lt;br /&gt;
  requestfilerename(str, str)&lt;br /&gt;
  requestfilesmove(str, str)&lt;br /&gt;
  requesthttp(str, int, str) - returns object&lt;br /&gt;
  requesttext(str, str)&lt;br /&gt;
  requesturl(str) - returns object&lt;br /&gt;
  resetfocus()&lt;br /&gt;
  rotationadd(str, str) - returns string&lt;br /&gt;
  rotationaddeuler(str, str) - returns string&lt;br /&gt;
  rotationfromeuler(str) - returns string&lt;br /&gt;
  rotationsub(str, str) - returns string&lt;br /&gt;
  rotationtoeuler(str) - returns string&lt;br /&gt;
  rungarbagecollector()&lt;br /&gt;
  savelog(str)&lt;br /&gt;
  say(int)&lt;br /&gt;
  say2(str)&lt;br /&gt;
  screenx(float, float) - returns integer&lt;br /&gt;
  screeny(float, float) - returns integer&lt;br /&gt;
  selectfilefordownload(str) - opens the select-file-dialog for the download location of files (from scripted RC)&lt;br /&gt;
  selectfileforupload() - opens the select-file-dialog for uploading of files (into scripted RC)&lt;br /&gt;
  sendrpgmessage(str)&lt;br /&gt;
  sendtext(str, str, params...)&lt;br /&gt;
  sendtorc(str)&lt;br /&gt;
  serverwarp(str)&lt;br /&gt;
  setani(str, str)&lt;br /&gt;
  setbeltcolor(str)&lt;br /&gt;
  setcoatcolor(str)&lt;br /&gt;
  setcontentcontrol(obj)&lt;br /&gt;
  setcursor2(str)&lt;br /&gt;
  seteffect(float, float, float, float)&lt;br /&gt;
  setfocus(float, float)&lt;br /&gt;
  setfogcolors(obj)&lt;br /&gt;
  setgender(str)&lt;br /&gt;
  sethead(str)&lt;br /&gt;
  setinteriorrendermode(int)&lt;br /&gt;
  setletters(str)&lt;br /&gt;
  setmap(str, str, float, float) - sets a text map (you can see the tiles of other levels but not the npcs), parameters are text file with level names, the map image (not used anymore), default x and y for the head icons; use gmaps if possible instead of this&lt;br /&gt;
  setminimap(str, str, float, float) - parameters are a text file with level names, the image, default x and y; use gmaps if possible instead of this&lt;br /&gt;
  setmusicvolume(float, float)&lt;br /&gt;
  setplayerdir(str)&lt;br /&gt;
  setshield(str, int)&lt;br /&gt;
  setshoecolor(str)&lt;br /&gt;
  setshootparams(str)&lt;br /&gt;
  setskincolor(str)&lt;br /&gt;
  setskybandcolors(obj)&lt;br /&gt;
  setskybandsizes(obj)&lt;br /&gt;
  setsleevecolor(str)&lt;br /&gt;
  setspritesimage(str)&lt;br /&gt;
  setstatusimage(str)&lt;br /&gt;
  setsuncolors(obj)&lt;br /&gt;
  setsword(str, int)&lt;br /&gt;
  setterrainrendermode(int)&lt;br /&gt;
  showstats(int)&lt;br /&gt;
  spyfire(int, int)&lt;br /&gt;
  startrecordvideo() - returns boolean&lt;br /&gt;
  stopmidi() - same as stopmusic(), kept for compatibility&lt;br /&gt;
  stopmusic()&lt;br /&gt;
  stoprecordvideo() - returns boolean&lt;br /&gt;
  stopsound(str)&lt;br /&gt;
  strcmp(str, str) - returns integer&lt;br /&gt;
  strequals(str, str) - returns boolean&lt;br /&gt;
  switchtoopengl()&lt;br /&gt;
  synctimeofday(float, float)&lt;br /&gt;
  takeplayercarry()&lt;br /&gt;
  takeplayerhorse()&lt;br /&gt;
  testplayer(float, float) - returns integer&lt;br /&gt;
  trace(str) - same as echo()&lt;br /&gt;
  triggeraction(float, float, str, params...)&lt;br /&gt;
  triggerserver(str, str)&lt;br /&gt;
  update3dterrain(float, float, float, float)&lt;br /&gt;
  updateboard(int, int, int, int)&lt;br /&gt;
  updateterrain()&lt;br /&gt;
  updatevisibledistance()&lt;br /&gt;
  uploadfile(str) - uploads a file, you must provide the full path provided by a onDropFiles() event, also this will only work if the scripted RC has currently a file browser window open; once the file is uploaded an onFilesUploaded event will be invoked&lt;br /&gt;
  uppercase(str) - returns string&lt;br /&gt;
  vectoradd(str, str) - returns string&lt;br /&gt;
  vectorcross(str, str) - returns string&lt;br /&gt;
  vectordist(str, str) - returns float&lt;br /&gt;
  vectordot(str, str) - returns float&lt;br /&gt;
  vectorlen(str) - returns float&lt;br /&gt;
  vectornormalize(str) - returns string&lt;br /&gt;
  vectororthobasis(str) - returns string&lt;br /&gt;
  vectorscale(str, float) - returns string&lt;br /&gt;
  vectorsub(str, str) - returns string&lt;br /&gt;
  worldx(float, float) - returns float&lt;br /&gt;
  worldy(float, float) - returns float&lt;br /&gt;
  wraptext(int, str, str) - returns object&lt;br /&gt;
  wraptext2(int, float, str, str) - returns object&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Objects=&lt;br /&gt;
&amp;lt;pre&amp;gt;TGraalVar:&lt;br /&gt;
  initialized - boolean [R]&lt;br /&gt;
  ispaused - boolean - suspends the script if set to paused&lt;br /&gt;
  joinedclasses - object&lt;br /&gt;
  maxlooplimit - integer - sets the maxmimum number of loop iterations, default 10000; the allowed range for this can vary from server to server&lt;br /&gt;
  name - string&lt;br /&gt;
  scripterrors - object [R] - gives the list of script errors which were reported for this object&lt;br /&gt;
  scriptlogmissingfunctions - boolean&lt;br /&gt;
  timeout - float&lt;br /&gt;
  addarray(obj) - adds another array to this variable&lt;br /&gt;
  addarraymember(str) - returns object - adds an array member with a name and returns the new array member&lt;br /&gt;
  addnamedstring(str, str) - returns object&lt;br /&gt;
  cancelevents(str) - removes all previously scheduled events (scheduleevent) of the specified event name&lt;br /&gt;
  catchevent(str, str, str) - adds an event handler for the specified object and event, third parameter is the function which receives the event (first parameter of the event will be the object for which the event occured)&lt;br /&gt;
  clearemptyvars() - removes empty subvariables from memory&lt;br /&gt;
  clearvars() - clears all dynamic variables&lt;br /&gt;
  copyfrom(obj) - copies all variables and array values from another object, doesn't work for protected variables like players though&lt;br /&gt;
  getarraymember(str) - returns object - searches for an array member by name&lt;br /&gt;
  getdynamicvarnames() - returns object - gets the names of all dynamic (not built-in) subvariables of this object&lt;br /&gt;
  geteditvarnames() - returns object - gets the names of all dynamic variables which can be modified&lt;br /&gt;
  getfunctions() - returns object - gets the names of all functions of the object as array, also each entry has subvariables which give more information about the function (&amp;quot;parameters&amp;quot;, &amp;quot;description&amp;quot;, &amp;quot;scope&amp;quot;)&lt;br /&gt;
  getstaticvarnames() - returns object - gets the names of all static (built-in) subvariables of this object&lt;br /&gt;
  getvarnames() - returns object - gets the names of all subvariables of this object&lt;br /&gt;
  hasfunction(str) - returns boolean - checks if the object has a function of the specified name (also checks if it can be called by the current script object)&lt;br /&gt;
  ignoreevent(str, str) - lets the object ignore an event (second parameter) of the specified object name&lt;br /&gt;
  ignoreevents(str) - lets the object ignore all previously catched events of the specified object name&lt;br /&gt;
  insertarray(int, obj) - inserts an array at the specified index&lt;br /&gt;
  isinclass(str) - returns boolean - checks if the object has joined the specified class&lt;br /&gt;
  join(str) - lets the object join a class and inherit all functions and event handlers of that class&lt;br /&gt;
  leave(str) - leaves a previously joined class&lt;br /&gt;
  loadfolder(str, int) - loads the content of a folder into the variable, you must specify the folder name and pattern (e.g. &amp;quot;levels/bodies/*.png&amp;quot;) and if it should be recursive&lt;br /&gt;
  loadini(str) - loads an .ini file into the variable, you can access variables by obj.inisection.varname&lt;br /&gt;
  loadlines(str) - loads a file and adds it line by line to the variable (as array)&lt;br /&gt;
  loadstring(str) - loads the content of a file into the variable&lt;br /&gt;
  loadvars(str) - loads the variables from a file where each line has the format varname=value&lt;br /&gt;
  loadvarsfromarray(obj) - loads the variables from a string list of the format varname=value&lt;br /&gt;
  loadxml(str)&lt;br /&gt;
  loadxmlfromstring(str)&lt;br /&gt;
  objecttype() - returns string - returns the object type, which can be TGraalVar, TProjectile etc.&lt;br /&gt;
  savelines(str, int) - saves the array line by line into a file, the second parameter is the save mode (0 - overwrite, 1 - append)&lt;br /&gt;
  savestring(str, int) - saves the value as string into a file, the second parameter is the save mode (0 - overwrite, 1 - append)&lt;br /&gt;
  savevars(str, int) - saves the subvars in the format varname=value into a file, the second parameter is the save mode (0 - overwrite, 1 - append)&lt;br /&gt;
  savevarstoarray(bool) - returns object - saves the subvars in the format varname=value into an array, you must specify if it should be sorted&lt;br /&gt;
  savexml(str, int)&lt;br /&gt;
  savexmltostring() - returns string&lt;br /&gt;
  scheduleevent(float, str, params...) - returns object - invokes an event (onEventname) after the specified delay (in seconds), second parameter is the event name, followed by the parameters&lt;br /&gt;
  settimer(float) - invokes an onTimeout event after the specified time, similar to 'timeout=value'&lt;br /&gt;
  sortascending() - sorts the array in ascending order (smallest value first)&lt;br /&gt;
  sortbyvalue(str, str, bool) - sorts an array, specify the variable of the array members which is compared, also the variable type and if it should be sorted ascending; variable type can be &amp;quot;string&amp;quot;, otherwise it is sorted by floating point value&lt;br /&gt;
  sortdescending() - sorts the array in descending order (highest value first)&lt;br /&gt;
  subarray2(int, int, int, int) - returns object - extracts a two-dimensional array, specify startpos1, length1, startpos2, length2&lt;br /&gt;
  timershow() - lets an npc show the current timeout variable, deprecated&lt;br /&gt;
  trigger(str, params...) - invokes an event on the object (onEventname) with the specified event name and parameters, doesn't interrupt the current script&lt;br /&gt;
&lt;br /&gt;
  ActionMap (TGraalVar):&lt;br /&gt;
    bind(str, str, str)&lt;br /&gt;
    getbinding(str) - returns string&lt;br /&gt;
    getcommand(str, str) - returns string&lt;br /&gt;
    load() - returns boolean&lt;br /&gt;
    pop()&lt;br /&gt;
    push()&lt;br /&gt;
    save()&lt;br /&gt;
    unbind(str, str)&lt;br /&gt;
&lt;br /&gt;
  DTSAniThread (TGraalVar):&lt;br /&gt;
    aniindex - integer [R]&lt;br /&gt;
    atend - boolean [R]&lt;br /&gt;
    attack - boolean&lt;br /&gt;
    endpos - float&lt;br /&gt;
    hold - boolean&lt;br /&gt;
    position - float&lt;br /&gt;
    sequence - string&lt;br /&gt;
    startpos - float&lt;br /&gt;
    state - string&lt;br /&gt;
    timescale - float&lt;br /&gt;
    transtitiontime - float&lt;br /&gt;
    isintransition() - returns boolean&lt;br /&gt;
    play()&lt;br /&gt;
&lt;br /&gt;
  GameMovementInterpolate (TGraalVar):&lt;br /&gt;
    rigid - object [R]&lt;br /&gt;
    applyimpulse(str, str)&lt;br /&gt;
&lt;br /&gt;
    GameMovementRigid (GameMovementInterpolate):&lt;br /&gt;
      addrigidmove(str, str) - adds torque and force vector&lt;br /&gt;
&lt;br /&gt;
  GameMovementList (TGraalVar):&lt;br /&gt;
    finishmoves()&lt;br /&gt;
    move3d(str, float, int)&lt;br /&gt;
&lt;br /&gt;
  GameShape (TGraalVar):&lt;br /&gt;
    pixelshader - string&lt;br /&gt;
    vertexshader - string&lt;br /&gt;
&lt;br /&gt;
    GameShapeDIF (GameShape):&lt;br /&gt;
      activatelight(str)&lt;br /&gt;
      deactivatelight(str)&lt;br /&gt;
&lt;br /&gt;
    GameShapeDTS (GameShape):&lt;br /&gt;
      materiallist - object [R]&lt;br /&gt;
      materials - object [R]&lt;br /&gt;
      forceanimations() - starts to animate the object to make sure the animations are the wished start position&lt;br /&gt;
      getanimation(int) - returns object&lt;br /&gt;
      listnodes() - returns object&lt;br /&gt;
      pauseanimation(int)&lt;br /&gt;
      playanimation(int, str, int) - returns object - specify animation slot, animation name and flags (1 - hold, 2 - atend, 4 - attackanimation)&lt;br /&gt;
      playanimation2(int, str, int, float, float, float, float) - returns object - specify animation slot, animation name, flags, startpos, endpos, timescale, transitiontime&lt;br /&gt;
      stopanimation(int)&lt;br /&gt;
&lt;br /&gt;
    GameShapeFT (GameShape):&lt;br /&gt;
      levels - integer&lt;br /&gt;
      seed - integer&lt;br /&gt;
&lt;br /&gt;
  GuiControl (TGraalVar):&lt;br /&gt;
    acceptdropfiles - boolean&lt;br /&gt;
    active - boolean&lt;br /&gt;
    alpha - float&lt;br /&gt;
    awake - boolean [R]&lt;br /&gt;
    blue - float&lt;br /&gt;
    canmove - boolean&lt;br /&gt;
    canresize - boolean&lt;br /&gt;
    clientextent - string&lt;br /&gt;
    clientheight - integer&lt;br /&gt;
    clientwidth - integer&lt;br /&gt;
    clipmove - boolean - when the user moves the control (see canMove) then this makes sure that the control is not moving outside the parents bounds, by default true&lt;br /&gt;
    color - string&lt;br /&gt;
    editing - boolean&lt;br /&gt;
    extent - string - width and height of the control&lt;br /&gt;
    flickerbasetime - float - if you want to let controls flicker at different time but with the same frequency, then set this to some random value (e.g. random(0,1))&lt;br /&gt;
    flickering - boolean - lets the control automatically show and hide itself in flickertime intervals&lt;br /&gt;
    flickertime - float - says in what interval the control is shown and hidden, in seconds; works only in combination with flickering=true&lt;br /&gt;
    green - float&lt;br /&gt;
    height - integer&lt;br /&gt;
    hint - string - text which is displayed when the user moves the mouse over the control&lt;br /&gt;
    hinttime - float - says after how much time of not moving the mouse the hint should appear&lt;br /&gt;
    horizsizing - string - specifies the horizontal resizing behaviour when the parent control is resized: right, width, left, center or relative&lt;br /&gt;
    layer - integer [R]&lt;br /&gt;
    minextent - string - minimum width and height for the control which should be enforced&lt;br /&gt;
    minsize - string - the same like &amp;quot;minExtent&amp;quot;&lt;br /&gt;
    mode - integer - the control drawing mode (0 - add, 1 - transparent, 2 - subtract, 3 - daynight)&lt;br /&gt;
    parent - object [R]&lt;br /&gt;
    position - string&lt;br /&gt;
    profile - object&lt;br /&gt;
    red - float&lt;br /&gt;
    resizeheight - boolean&lt;br /&gt;
    resizewidth - boolean&lt;br /&gt;
    scrolllinex - integer - if this is the first control inside a GuiScrollCtrl, then this defines by how many pixel the scroll control is scrolled horizontally when clicking on the left/right scroll bar buttons&lt;br /&gt;
    scrollliney - integer - if this is the first control inside a GuiScrollCtrl, then this defines by how many pixel the scroll control is scrolled vertically when clicking on the up/down scroll bar buttons&lt;br /&gt;
    showhint - boolean - whether the hint should be shown when the user moves the mouse over the control&lt;br /&gt;
    style - string&lt;br /&gt;
    useownprofile - boolean&lt;br /&gt;
    vertsizing - string - specifies the vertical resizing behaviour when the parent control is resized: bottom, height, top, center or relative&lt;br /&gt;
    visible - boolean&lt;br /&gt;
    width - integer&lt;br /&gt;
    x - integer&lt;br /&gt;
    y - integer&lt;br /&gt;
    addcontrol(obj)&lt;br /&gt;
    bringtofront()&lt;br /&gt;
    clearcontrols()&lt;br /&gt;
    destroy()&lt;br /&gt;
    getparent() - returns object&lt;br /&gt;
    globaltolocalcoord(str) - returns string - converts global screen coordinates to a position relative to the controls origin (0,0), can be used to know where exactly the user has clicked inside a control&lt;br /&gt;
    hide()&lt;br /&gt;
    isactuallyvisible() - returns boolean&lt;br /&gt;
    isfirstresponder() - returns boolean&lt;br /&gt;
    localtoglobalcoord(str) - returns string - converts a position relative to the controls origin (0,0) to global screen coordinates, can be used to know where on the screen a control is displayed in case it is a child of another control (e.g. GuiWindowCtrl or GuiScrollCtrl)&lt;br /&gt;
    makefirstresponder(bool)&lt;br /&gt;
    pushtoback()&lt;br /&gt;
    resize(int, int, int, int)&lt;br /&gt;
    show()&lt;br /&gt;
    showtop() - calls show(), tabfirst() and bringtofront()&lt;br /&gt;
    startdrag()&lt;br /&gt;
    tabfirst() - returns object&lt;br /&gt;
&lt;br /&gt;
    EditManager (GuiControl):&lt;br /&gt;
&lt;br /&gt;
    GuiArrayCtrl (GuiControl):&lt;br /&gt;
      allowmultipleselections - boolean&lt;br /&gt;
&lt;br /&gt;
      GuiTextListCtrl (GuiArrayCtrl):&lt;br /&gt;
        clipcolumntext - boolean&lt;br /&gt;
        columns - string - of format &amp;quot;0 16&amp;quot;, offset of the tabulators&lt;br /&gt;
        enumerate - boolean&lt;br /&gt;
        fitparentwidth - boolean&lt;br /&gt;
        groupsortorder - string&lt;br /&gt;
        iconheight - integer [R]&lt;br /&gt;
        iconwidth - integer [R]&lt;br /&gt;
        resizecell - boolean&lt;br /&gt;
        selected - object [R]&lt;br /&gt;
        sortcolumn - integer&lt;br /&gt;
        sortmode - string&lt;br /&gt;
        sortorder - string&lt;br /&gt;
        addrow(int, str) - returns object - the added row&lt;br /&gt;
        clearrows()&lt;br /&gt;
        clearselection()&lt;br /&gt;
        findtext(str) - returns integer - row index&lt;br /&gt;
        findtextid(str) - returns integer - row id&lt;br /&gt;
        getrowatpoint(int, int) - returns integer - row index&lt;br /&gt;
        getrowidatpoint(int, int) - returns integer - row id&lt;br /&gt;
        getrownumbyid(int) - returns integer&lt;br /&gt;
        getselectedid() - returns integer - row id&lt;br /&gt;
        getselectedids() - returns object - array of row ids&lt;br /&gt;
        getselectedrow() - returns integer - row index&lt;br /&gt;
        getselectedrows() - returns object - array of row indices&lt;br /&gt;
        getselectedtext() - returns string&lt;br /&gt;
        insertrow(int, int, str) - returns object - the inserted row&lt;br /&gt;
        isidselected(int) - returns boolean&lt;br /&gt;
        isrowselected(int) - returns boolean&lt;br /&gt;
        makevisible(int)&lt;br /&gt;
        makevisiblebyid(int)&lt;br /&gt;
        removerow(int)&lt;br /&gt;
        removerowbyid(int)&lt;br /&gt;
        rowcount() - returns integer&lt;br /&gt;
        seticonsize(int, int)&lt;br /&gt;
        setrowactivebyid(int, bool)&lt;br /&gt;
        setrowbyid(int, str)&lt;br /&gt;
        setselectedbyid(int)&lt;br /&gt;
        setselectedbytext(str)&lt;br /&gt;
        setselectedrow(int)&lt;br /&gt;
        sort()&lt;br /&gt;
&lt;br /&gt;
      GuiTreeViewCtrl (GuiArrayCtrl):&lt;br /&gt;
        boxwidth - integer&lt;br /&gt;
        clipcolumntext - boolean&lt;br /&gt;
        columns - string - of format &amp;quot;0 16&amp;quot;, offset of the tabulators&lt;br /&gt;
        expanded - boolean&lt;br /&gt;
        expandedimage - integer&lt;br /&gt;
        expandedselectedimage - integer&lt;br /&gt;
        expandondoubleclick - boolean&lt;br /&gt;
        extent - string [R]&lt;br /&gt;
        firstlinevisible - boolean&lt;br /&gt;
        fitparentwidth - boolean&lt;br /&gt;
        groupsortorder - string&lt;br /&gt;
        height - integer [R]&lt;br /&gt;
        hint - string&lt;br /&gt;
        image - integer&lt;br /&gt;
        level - integer [R]&lt;br /&gt;
        name - string - same as 'text'&lt;br /&gt;
        nodes - object [R]&lt;br /&gt;
        parent - object [R]&lt;br /&gt;
        position - string [R]&lt;br /&gt;
        profile - object&lt;br /&gt;
        selectedimage - integer&lt;br /&gt;
        sortgroup - integer&lt;br /&gt;
        sortmode - string&lt;br /&gt;
        sortorder - string&lt;br /&gt;
        sortvalue - integer&lt;br /&gt;
        statuswidth - integer&lt;br /&gt;
        text - string&lt;br /&gt;
        useownprofile - boolean&lt;br /&gt;
        visible - boolean&lt;br /&gt;
        width - integer [R]&lt;br /&gt;
        x - integer [R]&lt;br /&gt;
        y - integer [R]&lt;br /&gt;
        addlines(obj, bool)&lt;br /&gt;
        addnode(str) - returns object&lt;br /&gt;
        addnodebypath(str, str) - returns object&lt;br /&gt;
        addvars(obj, bool)&lt;br /&gt;
        clearnodes()&lt;br /&gt;
        clearrows() - same as clearNodes()&lt;br /&gt;
        destroy()&lt;br /&gt;
        getfullname(str) - returns string&lt;br /&gt;
        getnode(str) - returns object&lt;br /&gt;
        getnodeat(int, int) - returns object&lt;br /&gt;
        getnodebypath(str, str) - returns object&lt;br /&gt;
        getselectednode() - returns object&lt;br /&gt;
        select()&lt;br /&gt;
        seticonsize(int, int)&lt;br /&gt;
        sort()&lt;br /&gt;
&lt;br /&gt;
    GuiBitmapBorderCtrl (GuiControl):&lt;br /&gt;
      tile - boolean&lt;br /&gt;
&lt;br /&gt;
    GuiBitmapButtonCtrl (GuiControl):&lt;br /&gt;
      mouseoverbitmap - string&lt;br /&gt;
      normalbitmap - string&lt;br /&gt;
      pressedbitmap - string&lt;br /&gt;
      text - string&lt;br /&gt;
      setbitmap(str, int)&lt;br /&gt;
&lt;br /&gt;
    GuiBitmapCtrl (GuiControl):&lt;br /&gt;
      bitmap - string&lt;br /&gt;
      tile - boolean - specifies if the bitmap should be repeated (true) or stretched (false)&lt;br /&gt;
      wrap - boolean - same as 'tile', kept for compatibility&lt;br /&gt;
      setbitmap(str)&lt;br /&gt;
      setvalue(int, int) - sets the offset of the image (horizontal and vertical)&lt;br /&gt;
&lt;br /&gt;
      GuiMapOverviewCtrl (GuiBitmapCtrl):&lt;br /&gt;
        mapalpha - float&lt;br /&gt;
        pointsize - float&lt;br /&gt;
&lt;br /&gt;
    GuiBrowserCtrl (GuiControl):&lt;br /&gt;
      url - string&lt;br /&gt;
&lt;br /&gt;
    GuiButtonBaseCtrl (GuiControl):&lt;br /&gt;
      buttontype - string&lt;br /&gt;
      checked - boolean&lt;br /&gt;
      groupnum - integer&lt;br /&gt;
      text - string&lt;br /&gt;
      gettext() - returns string&lt;br /&gt;
      performclick()&lt;br /&gt;
      settext(str)&lt;br /&gt;
&lt;br /&gt;
      GuiButtonCtrl (GuiButtonBaseCtrl):&lt;br /&gt;
        stylesection - string&lt;br /&gt;
        seticonsize(int, int)&lt;br /&gt;
&lt;br /&gt;
      GuiCheckBoxCtrl (GuiButtonBaseCtrl):&lt;br /&gt;
&lt;br /&gt;
        GuiRadioCtrl (GuiCheckBoxCtrl):&lt;br /&gt;
&lt;br /&gt;
    GuiContextMenuCtrl (GuiControl):&lt;br /&gt;
      clipcolumntext - boolean&lt;br /&gt;
      columns - string - of format &amp;quot;0 16&amp;quot;, offset of the tabulators&lt;br /&gt;
      enumerate - boolean&lt;br /&gt;
      fitparentwidth - boolean&lt;br /&gt;
      groupsortorder - string&lt;br /&gt;
      iconheight - integer [R]&lt;br /&gt;
      iconwidth - integer [R]&lt;br /&gt;
      maxpopupheight - integer&lt;br /&gt;
      profile - object&lt;br /&gt;
      resizecell - boolean&lt;br /&gt;
      rows - object [R]&lt;br /&gt;
      scrollprofile - object&lt;br /&gt;
      selected - object [R]&lt;br /&gt;
      sortcolumn - integer&lt;br /&gt;
      sortmode - string&lt;br /&gt;
      sortorder - string&lt;br /&gt;
      textprofile - object&lt;br /&gt;
      width - integer&lt;br /&gt;
      addrow(int, str) - returns object - the added row&lt;br /&gt;
      clearrows()&lt;br /&gt;
      clearselection()&lt;br /&gt;
      close()&lt;br /&gt;
      findtext(str) - returns integer - row index&lt;br /&gt;
      findtextid(str) - returns integer - row id&lt;br /&gt;
      getrowatpoint(int, int) - returns integer - row index&lt;br /&gt;
      getrowidatpoint(int, int) - returns integer - row id&lt;br /&gt;
      getrownumbyid(int) - returns integer&lt;br /&gt;
      getselectedid() - returns integer - row id&lt;br /&gt;
      getselectedids() - returns object - array of row ids&lt;br /&gt;
      getselectedrow() - returns integer - row index&lt;br /&gt;
      getselectedrows() - returns object - array of row indices&lt;br /&gt;
      getselectedtext() - returns string&lt;br /&gt;
      insertrow(int, int, str) - returns object - the inserted row&lt;br /&gt;
      isidselected(int) - returns boolean&lt;br /&gt;
      isopen() - returns boolean&lt;br /&gt;
      isrowselected(int) - returns boolean&lt;br /&gt;
      makevisible(int)&lt;br /&gt;
      makevisiblebyid(int)&lt;br /&gt;
      open(int, int) - opens the menu at the specified screen position, if possible use openAtMouse() instead&lt;br /&gt;
      openatmouse()&lt;br /&gt;
      removerow(int)&lt;br /&gt;
      removerowbyid(int)&lt;br /&gt;
      rowcount() - returns integer&lt;br /&gt;
      seticonsize(int, int)&lt;br /&gt;
      setrowactivebyid(int, bool)&lt;br /&gt;
      setrowbyid(int, str)&lt;br /&gt;
      setselectedbyid(int)&lt;br /&gt;
      setselectedbytext(str)&lt;br /&gt;
      setselectedrow(int)&lt;br /&gt;
      sort()&lt;br /&gt;
&lt;br /&gt;
      GuiStartMenuCtrl (GuiContextMenuCtrl):&lt;br /&gt;
        text - string&lt;br /&gt;
        width - integer&lt;br /&gt;
        gettext() - returns string&lt;br /&gt;
        settext(str)&lt;br /&gt;
&lt;br /&gt;
    GuiDrawingPanel (GuiControl):&lt;br /&gt;
      parth - integer [R]&lt;br /&gt;
      partw - integer [R]&lt;br /&gt;
      partx - integer [R]&lt;br /&gt;
      party - integer [R]&lt;br /&gt;
      clearall()&lt;br /&gt;
      clearrectangle(int, int, int, int)&lt;br /&gt;
      drawimage(int, int, str)&lt;br /&gt;
      drawimagerectangle(int, int, str, int, int, int, int)&lt;br /&gt;
      drawimagestretched(int, int, int, int, str, int, int, int, int)&lt;br /&gt;
      saveimage(str)&lt;br /&gt;
&lt;br /&gt;
    GuiFlash (GuiControl):&lt;br /&gt;
      backgroundalpha - float&lt;br /&gt;
      downloadwebfiles - boolean&lt;br /&gt;
      hideonoverlap - boolean&lt;br /&gt;
      loopmovie - boolean&lt;br /&gt;
      messageonoverlap - string&lt;br /&gt;
      moviename - string&lt;br /&gt;
      requiresactivex - boolean - same as requiresplugin&lt;br /&gt;
      requiresplugin - boolean - only displays the flash file if the flash plugin or activex control could be loaded&lt;br /&gt;
      tryactivex - boolean - same as tryplugin&lt;br /&gt;
      tryplugin - boolean - tries to load the flash plugin or activex control to display the flash file&lt;br /&gt;
      getflashvariable(str) - returns string&lt;br /&gt;
      loadmovie(str, bool, float)&lt;br /&gt;
      playmovie()&lt;br /&gt;
      restartmovie()&lt;br /&gt;
      setbackgroundalpha(float)&lt;br /&gt;
      setflashvariable(str, str)&lt;br /&gt;
      setlooping(bool)&lt;br /&gt;
      stopmovie()&lt;br /&gt;
&lt;br /&gt;
    GuiFrameSetCtrl (GuiControl):&lt;br /&gt;
      autobalance - boolean&lt;br /&gt;
      bordercolor - string&lt;br /&gt;
      borderenable - string&lt;br /&gt;
      bordermovable - string&lt;br /&gt;
      borderwidth - integer&lt;br /&gt;
      columncount - integer&lt;br /&gt;
      fudgefactor - integer&lt;br /&gt;
      minextent - string&lt;br /&gt;
      rowcount - integer&lt;br /&gt;
      getcolumncount() - returns integer&lt;br /&gt;
      getcolumnoffset(int) - returns integer&lt;br /&gt;
      getrowcount() - returns integer&lt;br /&gt;
      getrowoffset(int) - returns integer&lt;br /&gt;
      setcolumncount(int)&lt;br /&gt;
      setcolumnoffset(int, int)&lt;br /&gt;
      setrowcount(int)&lt;br /&gt;
      setrowoffset(int, int)&lt;br /&gt;
&lt;br /&gt;
    GuiGraal3DCtrl (GuiControl):&lt;br /&gt;
&lt;br /&gt;
    GuiGraalCtrl (GuiControl):&lt;br /&gt;
&lt;br /&gt;
    GuiInputCtrl (GuiControl):&lt;br /&gt;
&lt;br /&gt;
    GuiMenuCtrl (GuiControl):&lt;br /&gt;
      iconheight - integer [R]&lt;br /&gt;
      iconwidth - integer [R]&lt;br /&gt;
      addmenu(str) - returns object&lt;br /&gt;
      clearmenus()&lt;br /&gt;
      findmenu(str) - returns object&lt;br /&gt;
      removemenu(str)&lt;br /&gt;
      seticonsize(int, int)&lt;br /&gt;
&lt;br /&gt;
    GuiMLTextCtrl (GuiControl):&lt;br /&gt;
      allowcolorchars - boolean&lt;br /&gt;
      allowedtags - string&lt;br /&gt;
      alpha - float&lt;br /&gt;
      deniedsound - string&lt;br /&gt;
      disallowedtags - string&lt;br /&gt;
      htmlcompatibility - boolean&lt;br /&gt;
      htmllinks - boolean - will automatically open a webbrowser when clicking on a link if you don't want to do it yourself by handling onURL() events via script&lt;br /&gt;
      maxchars - integer&lt;br /&gt;
      parsetags - boolean&lt;br /&gt;
      syntaxhighlighting - boolean&lt;br /&gt;
      text - string&lt;br /&gt;
      urlbase - string&lt;br /&gt;
      wordwrap - boolean&lt;br /&gt;
      addtext(str, bool)&lt;br /&gt;
      getcursorline() - returns integer&lt;br /&gt;
      getline(int) - returns string&lt;br /&gt;
      getlinecount() - returns integer&lt;br /&gt;
      getlines() - returns object - array of lines&lt;br /&gt;
      gettext() - returns string&lt;br /&gt;
      reflow()&lt;br /&gt;
      scrolltobottom()&lt;br /&gt;
      scrolltotag(str)&lt;br /&gt;
      scrolltotop()&lt;br /&gt;
      setlines(obj)&lt;br /&gt;
      settext(str)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Continued on [[Creation/Dev/Script/Clientside_Functions_Continued]]&lt;/div&gt;</summary>
		<author><name>Fowlplay4</name></author>
	</entry>
	<entry>
		<id>https://graalonline.net/index.php?title=Creation/Dev/Script/Clientside_Functions&amp;diff=17959</id>
		<title>Creation/Dev/Script/Clientside Functions</title>
		<link rel="alternate" type="text/html" href="https://graalonline.net/index.php?title=Creation/Dev/Script/Clientside_Functions&amp;diff=17959"/>
		<updated>2011-02-28T22:21:08Z</updated>

		<summary type="html">&lt;p&gt;Fowlplay4: /* Objects */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Scripting Reference]]&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;2&amp;quot; width=&amp;quot;50%&amp;quot;&lt;br /&gt;
|[R]&lt;br /&gt;
| denotes it is read-only.&lt;br /&gt;
|-&lt;br /&gt;
|[3D]&lt;br /&gt;
| denotes it is a Graal3D function.&lt;br /&gt;
|-&lt;br /&gt;
|[opengl]&lt;br /&gt;
| denotes it is functional only in opengl mode.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Variables=&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;2&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
| '''Variable'''&lt;br /&gt;
|width=&amp;quot;100px&amp;quot;|'''Type'''&lt;br /&gt;
| '''Notes'''&lt;br /&gt;
|-&lt;br /&gt;
| allfeatures&lt;br /&gt;
| ''integer [R]''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| allplayerscount&lt;br /&gt;
| ''integer [R]''&lt;br /&gt;
| Returns the count of all players on your playerlist, including IRC bots.&lt;br /&gt;
|-&lt;br /&gt;
| allrenderobjecttypes&lt;br /&gt;
| ''integer [R]''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| allstats &lt;br /&gt;
| ''integer [R]''&lt;br /&gt;
| Used with showstats() in order to show all stats.&lt;br /&gt;
|-&lt;br /&gt;
| canspin&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| Returns true of false if the player has spin attack.&lt;br /&gt;
|-&lt;br /&gt;
| carriesblackstone&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| Returns whether the player is carrying a black stone.&lt;br /&gt;
|-&lt;br /&gt;
| carriesbush&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| Returns whether the player is carrying a bush.&lt;br /&gt;
|-&lt;br /&gt;
| carriesnpc&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| Returns whether the player is carrying an NPC&lt;br /&gt;
|-&lt;br /&gt;
| carriessign&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| Returns whether the player is carrying a sign.&lt;br /&gt;
|-&lt;br /&gt;
| carriesstone&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| Returns whether the player is carrying a stone.&lt;br /&gt;
|-&lt;br /&gt;
| carriesvase&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| Returns whether the player is carrying a vase.&lt;br /&gt;
|-&lt;br /&gt;
| downloadfile&lt;br /&gt;
| ''string [R]''&lt;br /&gt;
| Returns the currently downloaded file.&lt;br /&gt;
|-&lt;br /&gt;
| downloadpos&lt;br /&gt;
| ''integer [R]''&lt;br /&gt;
| Returns the position of the currently downloaded file.&lt;br /&gt;
|-&lt;br /&gt;
| downloadsize&lt;br /&gt;
| ''integer [R]''&lt;br /&gt;
| Returns the size of the currently downloaded file.&lt;br /&gt;
|-&lt;br /&gt;
| editingmission&lt;br /&gt;
| ''boolean''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| emoticonchar&lt;br /&gt;
| ''string [R]''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| focusx&lt;br /&gt;
| ''float [R]''&lt;br /&gt;
| Position of the camera in tile units.&lt;br /&gt;
|-&lt;br /&gt;
| focusy&lt;br /&gt;
| ''float [R]''&lt;br /&gt;
| Position of the camera in tile units.&lt;br /&gt;
|-&lt;br /&gt;
| ghostsnear&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| If a ghost(observer) is in the same level as the player.&lt;br /&gt;
|-&lt;br /&gt;
| graalplugincookie&lt;br /&gt;
| ''string [R]''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| graalversion&lt;br /&gt;
| ''float [R]''&lt;br /&gt;
| Version of Graal the player is using.&lt;br /&gt;
|-&lt;br /&gt;
| gravity&lt;br /&gt;
| ''float''&lt;br /&gt;
| The gravity value that effects how fast projectiles fall. It universally effects all projectiles.&lt;br /&gt;
|-&lt;br /&gt;
| installedlanguages&lt;br /&gt;
| ''string [R]''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| isapplicationactive&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| Is Graal window active?&lt;br /&gt;
|-&lt;br /&gt;
| iscarrying&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| Returns true of false if the player is carrying something.&lt;br /&gt;
|-&lt;br /&gt;
| isfocused&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| isgraal3d&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| isgraalplugin&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| isleader&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| Player was the first to enter the level.&lt;br /&gt;
|-&lt;br /&gt;
| isonmap&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| Player is on a map.&lt;br /&gt;
|-&lt;br /&gt;
| isopengl&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| Graal is in opengl mode.&lt;br /&gt;
|-&lt;br /&gt;
| isrecordingvideo&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| Player is currently recording(alt+6) Graal.&lt;br /&gt;
|-&lt;br /&gt;
| jpegquality&lt;br /&gt;
| ''integer''&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| isgraalplugin&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| lastdownloadfile&lt;br /&gt;
| ''string [R]''&lt;br /&gt;
| The last file downloaded.&lt;br /&gt;
|-&lt;br /&gt;
| leftmousebutton&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| If the left mouse button is pressed.&lt;br /&gt;
|-&lt;br /&gt;
| leftmousebuttonglobal&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| If the left mouse button is pressed. Returns whether mouse is in focus of GUIs or not.&lt;br /&gt;
|-&lt;br /&gt;
| levelorgx&lt;br /&gt;
| ''float [R]''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| levelorgy&lt;br /&gt;
| ''float [R]''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| lighteffectsenabled&lt;br /&gt;
| ''boolean''&lt;br /&gt;
| Whether the player has their lights enabled via options.&lt;br /&gt;
|-&lt;br /&gt;
| middlemousebutton&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| If the middle mouse button is pressed&lt;br /&gt;
|-&lt;br /&gt;
| middlemousebuttonglobal&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| If the middle mouse button is pressed. Returns whether mouse is in focus of GUIs or not.&lt;br /&gt;
|-&lt;br /&gt;
| mousebuttons &lt;br /&gt;
| ''integer [R]''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| mousebuttonsglobal&lt;br /&gt;
| ''integer [R]''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| mousepitch&lt;br /&gt;
| ''float [R] [3D]''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| mousescreenx &lt;br /&gt;
| ''integer''&lt;br /&gt;
| Position of the mouse in the Graal screen, in pixel units on the x-axis.&lt;br /&gt;
|-&lt;br /&gt;
| mousescreeny &lt;br /&gt;
| ''integer''&lt;br /&gt;
| Position of the mouse in the Graal screen, in pixel units on the y-axis.&lt;br /&gt;
|-&lt;br /&gt;
| mousewheeldelta&lt;br /&gt;
| ''integer [R]''&lt;br /&gt;
| How much the mouse wheel has been scrolled.&lt;br /&gt;
|-&lt;br /&gt;
| mousex&lt;br /&gt;
| ''float''&lt;br /&gt;
| Position of the mouse in the level, in tile units, on the x-axis.&lt;br /&gt;
|-&lt;br /&gt;
| mousey&lt;br /&gt;
| ''float''&lt;br /&gt;
| Position of the mouse in the level, in tile units, on the y-axis&lt;br /&gt;
|-&lt;br /&gt;
| mouseyaw&lt;br /&gt;
| ''float [R] [3D]''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| musiclen &lt;br /&gt;
| ''integer [R]''&lt;br /&gt;
| Length of current playing '''MP3'''&lt;br /&gt;
|-&lt;br /&gt;
| musicpos&lt;br /&gt;
| ''integer [R]''&lt;br /&gt;
| Position of current playing '''MP3'''&lt;br /&gt;
|-&lt;br /&gt;
| particleeffectsenabled&lt;br /&gt;
| ''boolean''&lt;br /&gt;
| If player has particles enabled in their options.&lt;br /&gt;
|-&lt;br /&gt;
| rightmousebutton &lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| If the right mouse button is pressed&lt;br /&gt;
|-&lt;br /&gt;
| rightmousebuttonglobal &lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| If the right mouse button is pressed. Returns whether mouse is in focus of GUIs or not.&lt;br /&gt;
|-&lt;br /&gt;
| screenheight&lt;br /&gt;
| ''integer [R]''&lt;br /&gt;
| Height of the Graal screen in pixel units.&lt;br /&gt;
|-&lt;br /&gt;
| screenwidth&lt;br /&gt;
| ''integer [R]''&lt;br /&gt;
| Width of the Graal screen in pixel units.&lt;br /&gt;
|-&lt;br /&gt;
| scriptedcontrols &lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| scriptedplayerlist&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| Whether the player has the scripted playerlist enabled.&lt;br /&gt;
|-&lt;br /&gt;
| scriptlogwritetoreadonly&lt;br /&gt;
| ''boolean''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| selectedlistplayers&lt;br /&gt;
| ''object''&lt;br /&gt;
| An object of all players selected on the playerlist.&lt;br /&gt;
|-&lt;br /&gt;
| selectedsword &lt;br /&gt;
| ''integer''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| selectedweapon &lt;br /&gt;
| ''integer''&lt;br /&gt;
| Index of the currently selected weapon.&lt;br /&gt;
|-&lt;br /&gt;
| servername&lt;br /&gt;
| ''string [R]''&lt;br /&gt;
| Name of the server.&lt;br /&gt;
|-&lt;br /&gt;
| serverstartconnect &lt;br /&gt;
| ''string''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| serverstartparams &lt;br /&gt;
| ''string''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| shotbybaddy&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| If the player is shot by a baddy(default) arrow.&lt;br /&gt;
|-&lt;br /&gt;
| shotbyplayer&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| If the player is shot by another players arrow.&lt;br /&gt;
|-&lt;br /&gt;
| showterraingrid&lt;br /&gt;
| ''boolean''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| spritesimage&lt;br /&gt;
| ''string''&lt;br /&gt;
| Filename of the currently set sprite image.&lt;br /&gt;
|-&lt;br /&gt;
| statusimage&lt;br /&gt;
| ''string''&lt;br /&gt;
| Filename of the currently set state image.&lt;br /&gt;
|-&lt;br /&gt;
| timevar&lt;br /&gt;
| ''integer [R].''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| timevar2&lt;br /&gt;
| ''float [R]''&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| timevar3&lt;br /&gt;
| ''float [R] [3D]''&lt;br /&gt;
| Synchronized time which works on both server and client-side, precision is milliseconds.&lt;br /&gt;
|-&lt;br /&gt;
| wasshooted&lt;br /&gt;
| ''boolean [R]''&lt;br /&gt;
| If the player is shot by a default arrow.&lt;br /&gt;
|-&lt;br /&gt;
| waterheight&lt;br /&gt;
| ''float''&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| weapons&lt;br /&gt;
| ''object [R]''&lt;br /&gt;
| all the players weapons, this includes login inherited weapons.&lt;br /&gt;
|-&lt;br /&gt;
| weaponsenabled&lt;br /&gt;
| ''boolean''&lt;br /&gt;
| If the players weapons are enabled via disableweapons()/enableweapons().&lt;br /&gt;
|-&lt;br /&gt;
| weathereffectsenabled&lt;br /&gt;
| ''boolean''&lt;br /&gt;
| If weather is enabled in the players options.&lt;br /&gt;
|-&lt;br /&gt;
| worldclockstopped&lt;br /&gt;
| ''boolean''&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| worldhour &lt;br /&gt;
| ''integer''&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| worldminute &lt;br /&gt;
| ''float''&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| worldminutesofday &lt;br /&gt;
| ''float''&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| worldrealsecondsperday &lt;br /&gt;
| ''float''&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Functions=&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;2&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
| '''Variable'''&lt;br /&gt;
|width=&amp;quot;100px&amp;quot;|'''Type'''&lt;br /&gt;
| '''Notes'''&lt;br /&gt;
|-&lt;br /&gt;
| addcontrol(object)&lt;br /&gt;
|&lt;br /&gt;
| adds 'object' to the parent control.&lt;br /&gt;
|-&lt;br /&gt;
| addmaterialmapping(string, string)&lt;br /&gt;
| [3D]&lt;br /&gt;
| returns boolean.&lt;br /&gt;
|-&lt;br /&gt;
| addtiledef(string image, string prefix, int format)&lt;br /&gt;
| &lt;br /&gt;
| Adds a tileset definition with the supplied tileset image, level prefix and tileset format (0=pics1, 1=new world, 5=terrain).&lt;br /&gt;
|-&lt;br /&gt;
| addtiledef2(string image, string prefix, int x, int y)&lt;br /&gt;
| &lt;br /&gt;
| Overlays an image on the tileset with the supplied tileset image and level prefix. Parameters 'x' and 'y' represent the x and y position on the tileset of where to place the new image.&lt;br /&gt;
|-&lt;br /&gt;
| aindexof(float, array)&lt;br /&gt;
| &lt;br /&gt;
| Returns integer - the position of 'float' in the array.&lt;br /&gt;
|-&lt;br /&gt;
| arccos(float)&lt;br /&gt;
| &lt;br /&gt;
| Returns float - the arc cosine of 'float'.&lt;br /&gt;
|-&lt;br /&gt;
| arcsin(float)&lt;br /&gt;
| &lt;br /&gt;
| Returns float - the arc sine of 'float'.&lt;br /&gt;
|-&lt;br /&gt;
| attachplayertoobj(integer1, integer2)&lt;br /&gt;
| &lt;br /&gt;
| Attaches the player to the object with the matching ID where integer1 is the object type (currently only NPCs - 0) and integer2 is the ID of the desired object.&lt;br /&gt;
|-&lt;br /&gt;
| base64decode(string)&lt;br /&gt;
| &lt;br /&gt;
| Returns string - Decodes a base64 string.&lt;br /&gt;
|-&lt;br /&gt;
| base64encode(string)&lt;br /&gt;
| &lt;br /&gt;
| Returns string - Encodes string in to several characters of a 64 printable character set (A-Z, a-z, 0-9, + and /, while &amp;quot;=&amp;quot; is a special suffix code)&lt;br /&gt;
|-&lt;br /&gt;
| boxcontains(string, string)&lt;br /&gt;
| &lt;br /&gt;
| returns boolean.&lt;br /&gt;
|-&lt;br /&gt;
| boxcontainsvector(string, string)&lt;br /&gt;
| &lt;br /&gt;
| returns boolean&lt;br /&gt;
|-&lt;br /&gt;
| boxintersect(string, string)&lt;br /&gt;
| &lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| boxoverlaps(string, string)&lt;br /&gt;
| &lt;br /&gt;
| returns boolean&lt;br /&gt;
|-&lt;br /&gt;
| boxscale(string, string)&lt;br /&gt;
| &lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| callnpc(int index, string function)&lt;br /&gt;
| &lt;br /&gt;
| Calls a function from an NPC where 'index' is the NPC's index and 'function' is the function name.&lt;br /&gt;
|-&lt;br /&gt;
| callweapon(int index, string function)&lt;br /&gt;
| &lt;br /&gt;
| Calls a function from a weapon where 'index' is the weapon's index and 'function' is the function name.&lt;br /&gt;
|-&lt;br /&gt;
| castray({x,y,x}, {x,y,z}, string type)&lt;br /&gt;
| [3D]&lt;br /&gt;
| returns object - specify the start and end of the ray, and the object types (e.g. &amp;quot;staticts,terrain,interior&amp;quot;)&lt;br /&gt;
|-&lt;br /&gt;
| checksum(string)&lt;br /&gt;
| &lt;br /&gt;
| returns float&lt;br /&gt;
|-&lt;br /&gt;
| contains(string2, string1)&lt;br /&gt;
| &lt;br /&gt;
| returns boolean - True if string1 is contained within string2.&lt;br /&gt;
|-&lt;br /&gt;
| copystrings(string, string)&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| cursoroff()&lt;br /&gt;
| [opengl]&lt;br /&gt;
| Disables the visible mouse cursor.&lt;br /&gt;
|-&lt;br /&gt;
| cursoron()&lt;br /&gt;
| [opengl]&lt;br /&gt;
| Enables the visible mouse cursor.&lt;br /&gt;
|-&lt;br /&gt;
| degtorad(float)&lt;br /&gt;
| &lt;br /&gt;
| returns float - Converts angle measurements of degrees to radians&lt;br /&gt;
|-&lt;br /&gt;
| detachplayer()&lt;br /&gt;
| &lt;br /&gt;
| Detaches a player from an attached object.&lt;br /&gt;
|-&lt;br /&gt;
| disabledefmovement()&lt;br /&gt;
| &lt;br /&gt;
| Disables the default movement system and controls(including weapons, sword, grab. Does not include Q-menu, pause, map...).&lt;br /&gt;
|-&lt;br /&gt;
| disablemap()&lt;br /&gt;
| &lt;br /&gt;
| Disables the default map (M).&lt;br /&gt;
|-&lt;br /&gt;
| disablepause()&lt;br /&gt;
| &lt;br /&gt;
| Disables the default pause (P).&lt;br /&gt;
|-&lt;br /&gt;
| disableselectweapons()&lt;br /&gt;
| &lt;br /&gt;
| Disables the default Q-menu (Q).&lt;br /&gt;
|-&lt;br /&gt;
| disableweapons()&lt;br /&gt;
| &lt;br /&gt;
| Disables the default sword (S) and weapons (D).&lt;br /&gt;
|-&lt;br /&gt;
| echo(string)&lt;br /&gt;
| &lt;br /&gt;
| echos 'string' to the debug window(F2).&lt;br /&gt;
|-&lt;br /&gt;
| enabledefmovement()&lt;br /&gt;
| &lt;br /&gt;
| Enables the default movement system.&lt;br /&gt;
|-&lt;br /&gt;
| [[Creation/Dev/Script/Functions/enablefeatures(int)|enablefeatures(int)]]&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| enablemap()&lt;br /&gt;
| &lt;br /&gt;
| Enables the default map system(M).&lt;br /&gt;
|-&lt;br /&gt;
| enablepause()&lt;br /&gt;
| &lt;br /&gt;
| Enables the default pause system(P).&lt;br /&gt;
|-&lt;br /&gt;
| enableselectweapons()&lt;br /&gt;
| &lt;br /&gt;
| Enables the default Q-menu(Q).&lt;br /&gt;
|-&lt;br /&gt;
| enableweapons()&lt;br /&gt;
| &lt;br /&gt;
| Enables the default sword(S) and weapons(D).&lt;br /&gt;
|-&lt;br /&gt;
| escapestring(string)&lt;br /&gt;
| &lt;br /&gt;
| returns string - adds \\ in front of &amp;quot;, ' and \\, and removes non-printable characters&lt;br /&gt;
|-&lt;br /&gt;
| explodebomb(integer)&lt;br /&gt;
| &lt;br /&gt;
| explodes the bomb with the id of 'integer'.&lt;br /&gt;
|-&lt;br /&gt;
| extractfilebase(string)&lt;br /&gt;
| &lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| extractfileext(string)&lt;br /&gt;
| &lt;br /&gt;
| Takes in a file name, and returns its extension. &lt;br /&gt;
|-&lt;br /&gt;
| extractfilepath(string)&lt;br /&gt;
| &lt;br /&gt;
| returns string &lt;br /&gt;
|-&lt;br /&gt;
| fileexists(string)&lt;br /&gt;
| &lt;br /&gt;
| returns boolean of whether the file 'str' exists in the players Graal/ directory(does not search subfolders).&lt;br /&gt;
|-&lt;br /&gt;
| filesize(string)&lt;br /&gt;
| &lt;br /&gt;
| Returns the size(int) of the file 'string' in the players Graal/ directory(does not search subfolders).&lt;br /&gt;
|-&lt;br /&gt;
| fileupdate(string)&lt;br /&gt;
| &lt;br /&gt;
| returns boolean&lt;br /&gt;
|-&lt;br /&gt;
| findani(string)&lt;br /&gt;
| &lt;br /&gt;
| returns object&lt;br /&gt;
|-&lt;br /&gt;
| findfiles(string, integer)&lt;br /&gt;
| &lt;br /&gt;
| returns object&lt;br /&gt;
|-&lt;br /&gt;
| findlevel(string)&lt;br /&gt;
| &lt;br /&gt;
| returns object&lt;br /&gt;
|-&lt;br /&gt;
| findnearestplayer(float1, float2)&lt;br /&gt;
| &lt;br /&gt;
| Returns the closest player's object relevant to float1 and float2.&lt;br /&gt;
|-&lt;br /&gt;
| findnearestplayers(float, float)&lt;br /&gt;
| &lt;br /&gt;
| Returns the closest players' object relevant to float1 and float2.&lt;br /&gt;
|-&lt;br /&gt;
| findnpcbyid(integer)&lt;br /&gt;
|&lt;br /&gt;
| Returns the NPC object with the ID of 'int'.&lt;br /&gt;
|-&lt;br /&gt;
| findpathinarray(obj1, obj2, obj3, obj4, obj5, int, int, int)&lt;br /&gt;
|&lt;br /&gt;
| Returns object - Simple path-finding: Obj1 being tiles that allow walking, Obj2 being tiles that don't allow walking, Obj3; tiles that shouldn't be allowed to walked on, Obj4; tiles that are able to be walked on, Obj5; tiles where we may stop. Integers are relevant to the startx, starty and maximum path length. - Arrays for allowed/non-allowed tiles are only checked if they aren't null.&lt;br /&gt;
|-&lt;br /&gt;
| findplayer(string)&lt;br /&gt;
|&lt;br /&gt;
| Returns the player object with the account equal to string.&lt;br /&gt;
|-&lt;br /&gt;
| findplayerbycommunityname(string)&lt;br /&gt;
|&lt;br /&gt;
| Returns the player object with the community name equal to string.&lt;br /&gt;
|-&lt;br /&gt;
| findplayerbyid(integer)&lt;br /&gt;
|&lt;br /&gt;
| Returns the player object with the ID equal to integer.&lt;br /&gt;
|-&lt;br /&gt;
| findweapon(string)&lt;br /&gt;
|&lt;br /&gt;
| Returns the weapon object with the name equal to string.&lt;br /&gt;
|-&lt;br /&gt;
| format(string, string, ...)&lt;br /&gt;
|&lt;br /&gt;
| See [[Creation/Dev/Output_Methods#format.28.29_function|format()]]. &lt;br /&gt;
|- &lt;br /&gt;
| format2(string, array)&lt;br /&gt;
| &lt;br /&gt;
| Like format(), except that this expects the format string and an array of variables instead of passing the variables as separate parameters.&lt;br /&gt;
|-&lt;br /&gt;
| freefileresources(string)&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| freezeplayer(float)&lt;br /&gt;
|&lt;br /&gt;
| Freezes the player for the number of seconds specified by float.&lt;br /&gt;
|-&lt;br /&gt;
| get3dobjectat(float, float, boolean)&lt;br /&gt;
| [3D]&lt;br /&gt;
| Gets the 3d object at the specified screen position, third parameter true if it should do box collision.&lt;br /&gt;
|-&lt;br /&gt;
| get3dobjectatmouse(boolean)&lt;br /&gt;
| [3D]&lt;br /&gt;
| Gets the 3d object at the mouse.  Parameter true if it should do box collision.&lt;br /&gt;
|-&lt;br /&gt;
| get3dobjectbyray(string, string)&lt;br /&gt;
| [3D]&lt;br /&gt;
| returns object&lt;br /&gt;
|-&lt;br /&gt;
| get3dobjectsbybox(string, string)&lt;br /&gt;
| [3D]&lt;br /&gt;
| 1st parameter defines the box {minx,miny,minz, maxx,maxy,maxz}.  Second parameter specifies the type of object to find (e.g. &amp;quot;staticts,terrain,interior&amp;quot;)&lt;br /&gt;
|-&lt;br /&gt;
| get3dscreenposition(string, boolean)&lt;br /&gt;
| [3D]&lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| getanglesfromvector({x, y, z})&lt;br /&gt;
|&lt;br /&gt;
| Returns an array that contains the angles the 3D vector {x, y, z} makes with the X-Y and X-Z axes.&lt;br /&gt;
|-&lt;br /&gt;
| getascii(string)&lt;br /&gt;
|&lt;br /&gt;
| Returns the [http://www.asciitable.com/ ascii] code for string.&lt;br /&gt;
|-&lt;br /&gt;
| getbasepackage()&lt;br /&gt;
|&lt;br /&gt;
| returns object&lt;br /&gt;
|-&lt;br /&gt;
| getboxcenter(string)&lt;br /&gt;
|&lt;br /&gt;
| Returns an array containing the center of a 3D box specified by string ({x0,y0,z0,x1,y1,z1,...}).&lt;br /&gt;
|-&lt;br /&gt;
| getdesktopresolution()&lt;br /&gt;
|&lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| getdisplaydevicelist()&lt;br /&gt;
|&lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| getdownloadedupdatepackagesize()&lt;br /&gt;
|&lt;br /&gt;
| Returns the size of the downloaded update package.&lt;br /&gt;
|-&lt;br /&gt;
| getdownloadingpackage()&lt;br /&gt;
|&lt;br /&gt;
| Returns a reference to current update package being downloaded.&lt;br /&gt;
|-&lt;br /&gt;
| getdownloadingpackagescount()&lt;br /&gt;
|&lt;br /&gt;
| Returns a count of the number of update packages to download.&lt;br /&gt;
|-&lt;br /&gt;
| getdropz(string)&lt;br /&gt;
|&lt;br /&gt;
| returns float&lt;br /&gt;
|-&lt;br /&gt;
| getExtension(string)&lt;br /&gt;
|&lt;br /&gt;
| This function is the same as extractFileExt().  Takes in a file name, and returns its extension.&lt;br /&gt;
|-&lt;br /&gt;
| getfilemodtime(string)&lt;br /&gt;
|&lt;br /&gt;
| Returns a timestamp of when the file was last modified (in unix time compatible to timevar2). This function accepts both exact file path and plain file name.&lt;br /&gt;
|-&lt;br /&gt;
| gethttprequest(string, integer, string)&lt;br /&gt;
| &lt;br /&gt;
| returns object (This function is the same as requestHttp())&lt;br /&gt;
|-&lt;br /&gt;
| getimgheight(string)&lt;br /&gt;
|&lt;br /&gt;
| Returns the height (in pixels) of the filename indicated by string.&lt;br /&gt;
|-&lt;br /&gt;
| getimgpixel(string, integer, integer)&lt;br /&gt;
|&lt;br /&gt;
| returns object&lt;br /&gt;
|-&lt;br /&gt;
| getimgwidth(string)&lt;br /&gt;
|&lt;br /&gt;
| Returns the width(in pixels) of the filename indicated by string.&lt;br /&gt;
|-&lt;br /&gt;
| getkeycode(string)&lt;br /&gt;
|&lt;br /&gt;
| Returns the keycode of the key indicated by string.  The keycode returned can be used in keydown2().&lt;br /&gt;
|-&lt;br /&gt;
| getloginaccountname()&lt;br /&gt;
|&lt;br /&gt;
| Presumably used for the login server.  Use player.account instead.&lt;br /&gt;
|-&lt;br /&gt;
| getmapx(string)&lt;br /&gt;
| &lt;br /&gt;
| Gets the x coordinate location in the gmap of the level indicated by string.  The top-left level starts at (0, 0).&lt;br /&gt;
|-&lt;br /&gt;
| getmapy(string)&lt;br /&gt;
|&lt;br /&gt;
| Gets the y coordinate location in the gmap of the level indicated by string.  The top-left level starts at (0, 0).&lt;br /&gt;
|-&lt;br /&gt;
| getmusicfilename()&lt;br /&gt;
|&lt;br /&gt;
| Returns the filename of the music currently playing.&lt;br /&gt;
|-&lt;br /&gt;
| getmusicstatus()&lt;br /&gt;
|&lt;br /&gt;
| Returns the status of the music currently playing.&lt;br /&gt;
|-&lt;br /&gt;
| getmusictags()&lt;br /&gt;
|&lt;br /&gt;
| Returns the tags of the music currently playing.  This function can be used to retrieve the title and artist info of the music.&lt;br /&gt;
|-&lt;br /&gt;
| getnearestplayer(float, float)&lt;br /&gt;
|&lt;br /&gt;
| Deprecated.  Use findnearestplayer() instead.&lt;br /&gt;
|-&lt;br /&gt;
| getnearestplayers(float, float)&lt;br /&gt;
|&lt;br /&gt;
| Deprecated.  Use findnearestplayers() instead.&lt;br /&gt;
|-&lt;br /&gt;
| getpackagesdownloadcomplete()&lt;br /&gt;
|&lt;br /&gt;
| Returns 'true' if the package downloads are complete.&lt;br /&gt;
|-&lt;br /&gt;
| getpackagesdownloaded()&lt;br /&gt;
|&lt;br /&gt;
| Returns 'true' if the most recent packages are already downloaded.&lt;br /&gt;
|-&lt;br /&gt;
| getplatform()&lt;br /&gt;
|&lt;br /&gt;
| Returns the platform that the player is using.  (i.e. windows, mac, or linux)&lt;br /&gt;
|-&lt;br /&gt;
| getresolutionlist(string)&lt;br /&gt;
|&lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| getservername()&lt;br /&gt;
|&lt;br /&gt;
| Returns the name of the server the player is currently connected to.&lt;br /&gt;
|-&lt;br /&gt;
| getstringkeys(string)&lt;br /&gt;
|&lt;br /&gt;
| Returns an array of the variables that begins with the supplied string.&lt;br /&gt;
|-&lt;br /&gt;
| getterraintexture(float, float)&lt;br /&gt;
|&lt;br /&gt;
| returns string&lt;br /&gt;
|-&lt;br /&gt;
| getterraintextureindex(float, float)&lt;br /&gt;
|&lt;br /&gt;
| returns integer&lt;br /&gt;
|-&lt;br /&gt;
| gettextheight(float zoom, string style, string font)&lt;br /&gt;
|&lt;br /&gt;
| returns integer - The height in pixels of the text with the given zoom, style and font.&lt;br /&gt;
|-&lt;br /&gt;
| gettextwidth(float zoom, string style, string font, string text)&lt;br /&gt;
|&lt;br /&gt;
| returns integer - The width of the text with the given zoom, style, font and text.&lt;br /&gt;
|-&lt;br /&gt;
| gettileset()&lt;br /&gt;
|&lt;br /&gt;
| returns string - the current main tileset (pics1.png, picso.png etc.)&lt;br /&gt;
|-&lt;br /&gt;
| gettilesettype()&lt;br /&gt;
|&lt;br /&gt;
| returns integer - the current tileset type (pics1.png:0, picso.png:5 etc.)&lt;br /&gt;
|-&lt;br /&gt;
| gettotalupdatepackagesize()&lt;br /&gt;
|&lt;br /&gt;
| returns integer - The total size of the update packages.&lt;br /&gt;
|-&lt;br /&gt;
| getupdatepackage(string name)&lt;br /&gt;
|&lt;br /&gt;
| returns object - A reference to the update package with the given name.&lt;br /&gt;
|-&lt;br /&gt;
| getvectorfromangles(float, float)&lt;br /&gt;
|&lt;br /&gt;
| returns string&lt;br /&gt;
|- &lt;br /&gt;
| getz(float, float)&lt;br /&gt;
|&lt;br /&gt;
| returns float&lt;br /&gt;
|-&lt;br /&gt;
| graalcontrolhasfocus(bool)&lt;br /&gt;
|&lt;br /&gt;
| returns boolean - Whether or not the graal control has focus.  Parameter says if it should also check if the chat bar has the focus&lt;br /&gt;
|-&lt;br /&gt;
| hideplayer(float time)&lt;br /&gt;
|&lt;br /&gt;
| Hides player for the specified amount of time.&lt;br /&gt;
|-&lt;br /&gt;
| hidesword(float time)&lt;br /&gt;
|&lt;br /&gt;
| Hides the player's sword for the specified amount of time.&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;pre&amp;gt;  hitnpc(int, float, float, float)&lt;br /&gt;
  hitobjects(float, float, float)&lt;br /&gt;
  hitplayer(int, float, float, float)&lt;br /&gt;
  isadminguild(str) - returns boolean&lt;br /&gt;
  isclassloaded(str) - returns boolean&lt;br /&gt;
  iscursoron() - returns boolean&lt;br /&gt;
  isdevicefullscreenonly(str) - returns boolean&lt;br /&gt;
  isdownloading(str) - returns boolean - checks if a file is currently downloaded or requested from the server&lt;br /&gt;
  isdownloadingfiles() - returns boolean - checks if Graal is currently downloading or requesting files from the server&lt;br /&gt;
  isfullscreenmode() - returns boolean&lt;br /&gt;
  isimgpixeltransparent(str, int, int) - returns boolean&lt;br /&gt;
  isimgrectangletransparent(str, int, int, int, int) - returns boolean&lt;br /&gt;
  ismusicplaying() - returns boolean&lt;br /&gt;
  isobject(str) - returns boolean&lt;br /&gt;
  issoundplaying(str) - returns boolean&lt;br /&gt;
  keydown(int) - returns boolean&lt;br /&gt;
  keydown2(int, bool) - returns boolean&lt;br /&gt;
  keydown2global(int, bool) - returns boolean&lt;br /&gt;
  keydownglobal(int) - returns boolean&lt;br /&gt;
  keyname(int) - returns string&lt;br /&gt;
  lay2(str, float, float)&lt;br /&gt;
  lightscene() - returns boolean&lt;br /&gt;
  loadclass(str)&lt;br /&gt;
  loadmap(str)&lt;br /&gt;
  loadtranslation(str)&lt;br /&gt;
  lowercase(str) - returns string&lt;br /&gt;
  ltmfs(bool)&lt;br /&gt;
  ltmmax(float, float)&lt;br /&gt;
  ltmmin(float, float)&lt;br /&gt;
  makescreenshot2(str, int, float, float, float, int, int)&lt;br /&gt;
  matrixcreate(str, str) - returns string&lt;br /&gt;
  matrixcreatefromeuler(str) - returns string&lt;br /&gt;
  matrixmulpoint(str, str) - returns string&lt;br /&gt;
  matrixmultiply(str, str) - returns string&lt;br /&gt;
  matrixmulvector(str, str) - returns string&lt;br /&gt;
  md5(str) - returns string&lt;br /&gt;
  noplayerkilling()&lt;br /&gt;
  onwall(float, float) - returns boolean&lt;br /&gt;
  onwall2(float, float, float, float) - returns boolean&lt;br /&gt;
  onwater(float, float) - returns boolean&lt;br /&gt;
  onwater2(float, float, float, float) - returns boolean&lt;br /&gt;
  opengraalurl(str)&lt;br /&gt;
  openurl(str)&lt;br /&gt;
  openurl2(str, int, int)&lt;br /&gt;
  play(str)&lt;br /&gt;
  play2(str, float, float, float)&lt;br /&gt;
  play3d(str, bool, str, str)&lt;br /&gt;
  playlooped(str)&lt;br /&gt;
  playlooped2(str, float, float, float)&lt;br /&gt;
  popdialog()&lt;br /&gt;
  pushdialog(obj)&lt;br /&gt;
  putleaps(int, float, float)&lt;br /&gt;
  radtodeg(float) - returns float&lt;br /&gt;
  randomstring(str) - returns string&lt;br /&gt;
  removetiledefs(str)&lt;br /&gt;
  replaceani(str, str)&lt;br /&gt;
  requestfiledeletion(str)&lt;br /&gt;
  requestfilerename(str, str)&lt;br /&gt;
  requestfilesmove(str, str)&lt;br /&gt;
  requesthttp(str, int, str) - returns object&lt;br /&gt;
  requesttext(str, str)&lt;br /&gt;
  requesturl(str) - returns object&lt;br /&gt;
  resetfocus()&lt;br /&gt;
  rotationadd(str, str) - returns string&lt;br /&gt;
  rotationaddeuler(str, str) - returns string&lt;br /&gt;
  rotationfromeuler(str) - returns string&lt;br /&gt;
  rotationsub(str, str) - returns string&lt;br /&gt;
  rotationtoeuler(str) - returns string&lt;br /&gt;
  rungarbagecollector()&lt;br /&gt;
  savelog(str)&lt;br /&gt;
  say(int)&lt;br /&gt;
  say2(str)&lt;br /&gt;
  screenx(float, float) - returns integer&lt;br /&gt;
  screeny(float, float) - returns integer&lt;br /&gt;
  selectfilefordownload(str) - opens the select-file-dialog for the download location of files (from scripted RC)&lt;br /&gt;
  selectfileforupload() - opens the select-file-dialog for uploading of files (into scripted RC)&lt;br /&gt;
  sendrpgmessage(str)&lt;br /&gt;
  sendtext(str, str, params...)&lt;br /&gt;
  sendtorc(str)&lt;br /&gt;
  serverwarp(str)&lt;br /&gt;
  setani(str, str)&lt;br /&gt;
  setbeltcolor(str)&lt;br /&gt;
  setcoatcolor(str)&lt;br /&gt;
  setcontentcontrol(obj)&lt;br /&gt;
  setcursor2(str)&lt;br /&gt;
  seteffect(float, float, float, float)&lt;br /&gt;
  setfocus(float, float)&lt;br /&gt;
  setfogcolors(obj)&lt;br /&gt;
  setgender(str)&lt;br /&gt;
  sethead(str)&lt;br /&gt;
  setinteriorrendermode(int)&lt;br /&gt;
  setletters(str)&lt;br /&gt;
  setmap(str, str, float, float) - sets a text map (you can see the tiles of other levels but not the npcs), parameters are text file with level names, the map image (not used anymore), default x and y for the head icons; use gmaps if possible instead of this&lt;br /&gt;
  setminimap(str, str, float, float) - parameters are a text file with level names, the image, default x and y; use gmaps if possible instead of this&lt;br /&gt;
  setmusicvolume(float, float)&lt;br /&gt;
  setplayerdir(str)&lt;br /&gt;
  setshield(str, int)&lt;br /&gt;
  setshoecolor(str)&lt;br /&gt;
  setshootparams(str)&lt;br /&gt;
  setskincolor(str)&lt;br /&gt;
  setskybandcolors(obj)&lt;br /&gt;
  setskybandsizes(obj)&lt;br /&gt;
  setsleevecolor(str)&lt;br /&gt;
  setspritesimage(str)&lt;br /&gt;
  setstatusimage(str)&lt;br /&gt;
  setsuncolors(obj)&lt;br /&gt;
  setsword(str, int)&lt;br /&gt;
  setterrainrendermode(int)&lt;br /&gt;
  showstats(int)&lt;br /&gt;
  spyfire(int, int)&lt;br /&gt;
  startrecordvideo() - returns boolean&lt;br /&gt;
  stopmidi() - same as stopmusic(), kept for compatibility&lt;br /&gt;
  stopmusic()&lt;br /&gt;
  stoprecordvideo() - returns boolean&lt;br /&gt;
  stopsound(str)&lt;br /&gt;
  strcmp(str, str) - returns integer&lt;br /&gt;
  strequals(str, str) - returns boolean&lt;br /&gt;
  switchtoopengl()&lt;br /&gt;
  synctimeofday(float, float)&lt;br /&gt;
  takeplayercarry()&lt;br /&gt;
  takeplayerhorse()&lt;br /&gt;
  testplayer(float, float) - returns integer&lt;br /&gt;
  trace(str) - same as echo()&lt;br /&gt;
  triggeraction(float, float, str, params...)&lt;br /&gt;
  triggerserver(str, str)&lt;br /&gt;
  update3dterrain(float, float, float, float)&lt;br /&gt;
  updateboard(int, int, int, int)&lt;br /&gt;
  updateterrain()&lt;br /&gt;
  updatevisibledistance()&lt;br /&gt;
  uploadfile(str) - uploads a file, you must provide the full path provided by a onDropFiles() event, also this will only work if the scripted RC has currently a file browser window open; once the file is uploaded an onFilesUploaded event will be invoked&lt;br /&gt;
  uppercase(str) - returns string&lt;br /&gt;
  vectoradd(str, str) - returns string&lt;br /&gt;
  vectorcross(str, str) - returns string&lt;br /&gt;
  vectordist(str, str) - returns float&lt;br /&gt;
  vectordot(str, str) - returns float&lt;br /&gt;
  vectorlen(str) - returns float&lt;br /&gt;
  vectornormalize(str) - returns string&lt;br /&gt;
  vectororthobasis(str) - returns string&lt;br /&gt;
  vectorscale(str, float) - returns string&lt;br /&gt;
  vectorsub(str, str) - returns string&lt;br /&gt;
  worldx(float, float) - returns float&lt;br /&gt;
  worldy(float, float) - returns float&lt;br /&gt;
  wraptext(int, str, str) - returns object&lt;br /&gt;
  wraptext2(int, float, str, str) - returns object&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Objects=&lt;br /&gt;
&amp;lt;pre&amp;gt;TGraalVar:&lt;br /&gt;
  initialized - boolean [R]&lt;br /&gt;
  ispaused - boolean - suspends the script if set to paused&lt;br /&gt;
  joinedclasses - object&lt;br /&gt;
  maxlooplimit - integer - sets the maxmimum number of loop iterations, default 10000; the allowed range for this can vary from server to server&lt;br /&gt;
  name - string&lt;br /&gt;
  scripterrors - object [R] - gives the list of script errors which were reported for this object&lt;br /&gt;
  scriptlogmissingfunctions - boolean&lt;br /&gt;
  timeout - float&lt;br /&gt;
  addarray(obj) - adds another array to this variable&lt;br /&gt;
  addarraymember(str) - returns object - adds an array member with a name and returns the new array member&lt;br /&gt;
  addnamedstring(str, str) - returns object&lt;br /&gt;
  cancelevents(str) - removes all previously scheduled events (scheduleevent) of the specified event name&lt;br /&gt;
  catchevent(str, str, str) - adds an event handler for the specified object and event, third parameter is the function which receives the event (first parameter of the event will be the object for which the event occured)&lt;br /&gt;
  clearemptyvars() - removes empty subvariables from memory&lt;br /&gt;
  clearvars() - clears all dynamic variables&lt;br /&gt;
  copyfrom(obj) - copies all variables and array values from another object, doesn't work for protected variables like players though&lt;br /&gt;
  getarraymember(str) - returns object - searches for an array member by name&lt;br /&gt;
  getdynamicvarnames() - returns object - gets the names of all dynamic (not built-in) subvariables of this object&lt;br /&gt;
  geteditvarnames() - returns object - gets the names of all dynamic variables which can be modified&lt;br /&gt;
  getfunctions() - returns object - gets the names of all functions of the object as array, also each entry has subvariables which give more information about the function (&amp;quot;parameters&amp;quot;, &amp;quot;description&amp;quot;, &amp;quot;scope&amp;quot;)&lt;br /&gt;
  getstaticvarnames() - returns object - gets the names of all static (built-in) subvariables of this object&lt;br /&gt;
  getvarnames() - returns object - gets the names of all subvariables of this object&lt;br /&gt;
  hasfunction(str) - returns boolean - checks if the object has a function of the specified name (also checks if it can be called by the current script object)&lt;br /&gt;
  ignoreevent(str, str) - lets the object ignore an event (second parameter) of the specified object name&lt;br /&gt;
  ignoreevents(str) - lets the object ignore all previously catched events of the specified object name&lt;br /&gt;
  insertarray(int, obj) - inserts an array at the specified index&lt;br /&gt;
  isinclass(str) - returns boolean - checks if the object has joined the specified class&lt;br /&gt;
  join(str) - lets the object join a class and inherit all functions and event handlers of that class&lt;br /&gt;
  leave(str) - leaves a previously joined class&lt;br /&gt;
  loadfolder(str, int) - loads the content of a folder into the variable, you must specify the folder name and pattern (e.g. &amp;quot;levels/bodies/*.png&amp;quot;) and if it should be recursive&lt;br /&gt;
  loadini(str) - loads an .ini file into the variable, you can access variables by obj.inisection.varname&lt;br /&gt;
  loadlines(str) - loads a file and adds it line by line to the variable (as array)&lt;br /&gt;
  loadstring(str) - loads the content of a file into the variable&lt;br /&gt;
  loadvars(str) - loads the variables from a file where each line has the format varname=value&lt;br /&gt;
  loadvarsfromarray(obj) - loads the variables from a string list of the format varname=value&lt;br /&gt;
  loadxml(str)&lt;br /&gt;
  loadxmlfromstring(str)&lt;br /&gt;
  objecttype() - returns string - returns the object type, which can be TGraalVar, TProjectile etc.&lt;br /&gt;
  savelines(str, int) - saves the array line by line into a file, the second parameter is the save mode (0 - overwrite, 1 - append)&lt;br /&gt;
  savestring(str, int) - saves the value as string into a file, the second parameter is the save mode (0 - overwrite, 1 - append)&lt;br /&gt;
  savevars(str, int) - saves the subvars in the format varname=value into a file, the second parameter is the save mode (0 - overwrite, 1 - append)&lt;br /&gt;
  savevarstoarray(bool) - returns object - saves the subvars in the format varname=value into an array, you must specify if it should be sorted&lt;br /&gt;
  savexml(str, int)&lt;br /&gt;
  savexmltostring() - returns string&lt;br /&gt;
  scheduleevent(float, str, params...) - returns object - invokes an event (onEventname) after the specified delay (in seconds), second parameter is the event name, followed by the parameters&lt;br /&gt;
  settimer(float) - invokes an onTimeout event after the specified time, similar to 'timeout=value'&lt;br /&gt;
  sortascending() - sorts the array in ascending order (smallest value first)&lt;br /&gt;
  sortbyvalue(str, str, bool) - sorts an array, specify the variable of the array members which is compared, also the variable type and if it should be sorted ascending; variable type can be &amp;quot;string&amp;quot;, otherwise it is sorted by floating point value&lt;br /&gt;
  sortdescending() - sorts the array in descending order (highest value first)&lt;br /&gt;
  subarray2(int, int, int, int) - returns object - extracts a two-dimensional array, specify startpos1, length1, startpos2, length2&lt;br /&gt;
  timershow() - lets an npc show the current timeout variable, deprecated&lt;br /&gt;
  trigger(str, params...) - invokes an event on the object (onEventname) with the specified event name and parameters, doesn't interrupt the current script&lt;br /&gt;
&lt;br /&gt;
  ActionMap (TGraalVar):&lt;br /&gt;
    bind(str, str, str)&lt;br /&gt;
    getbinding(str) - returns string&lt;br /&gt;
    getcommand(str, str) - returns string&lt;br /&gt;
    load() - returns boolean&lt;br /&gt;
    pop()&lt;br /&gt;
    push()&lt;br /&gt;
    save()&lt;br /&gt;
    unbind(str, str)&lt;br /&gt;
&lt;br /&gt;
  DTSAniThread (TGraalVar):&lt;br /&gt;
    aniindex - integer [R]&lt;br /&gt;
    atend - boolean [R]&lt;br /&gt;
    attack - boolean&lt;br /&gt;
    endpos - float&lt;br /&gt;
    hold - boolean&lt;br /&gt;
    position - float&lt;br /&gt;
    sequence - string&lt;br /&gt;
    startpos - float&lt;br /&gt;
    state - string&lt;br /&gt;
    timescale - float&lt;br /&gt;
    transtitiontime - float&lt;br /&gt;
    isintransition() - returns boolean&lt;br /&gt;
    play()&lt;br /&gt;
&lt;br /&gt;
  GameMovementInterpolate (TGraalVar):&lt;br /&gt;
    rigid - object [R]&lt;br /&gt;
    applyimpulse(str, str)&lt;br /&gt;
&lt;br /&gt;
    GameMovementRigid (GameMovementInterpolate):&lt;br /&gt;
      addrigidmove(str, str) - adds torque and force vector&lt;br /&gt;
&lt;br /&gt;
  GameMovementList (TGraalVar):&lt;br /&gt;
    finishmoves()&lt;br /&gt;
    move3d(str, float, int)&lt;br /&gt;
&lt;br /&gt;
  GameShape (TGraalVar):&lt;br /&gt;
    pixelshader - string&lt;br /&gt;
    vertexshader - string&lt;br /&gt;
&lt;br /&gt;
    GameShapeDIF (GameShape):&lt;br /&gt;
      activatelight(str)&lt;br /&gt;
      deactivatelight(str)&lt;br /&gt;
&lt;br /&gt;
    GameShapeDTS (GameShape):&lt;br /&gt;
      materiallist - object [R]&lt;br /&gt;
      materials - object [R]&lt;br /&gt;
      forceanimations() - starts to animate the object to make sure the animations are the wished start position&lt;br /&gt;
      getanimation(int) - returns object&lt;br /&gt;
      listnodes() - returns object&lt;br /&gt;
      pauseanimation(int)&lt;br /&gt;
      playanimation(int, str, int) - returns object - specify animation slot, animation name and flags (1 - hold, 2 - atend, 4 - attackanimation)&lt;br /&gt;
      playanimation2(int, str, int, float, float, float, float) - returns object - specify animation slot, animation name, flags, startpos, endpos, timescale, transitiontime&lt;br /&gt;
      stopanimation(int)&lt;br /&gt;
&lt;br /&gt;
    GameShapeFT (GameShape):&lt;br /&gt;
      levels - integer&lt;br /&gt;
      seed - integer&lt;br /&gt;
&lt;br /&gt;
  GuiControl (TGraalVar):&lt;br /&gt;
    acceptdropfiles - boolean&lt;br /&gt;
    active - boolean&lt;br /&gt;
    alpha - float&lt;br /&gt;
    awake - boolean [R]&lt;br /&gt;
    blue - float&lt;br /&gt;
    canmove - boolean&lt;br /&gt;
    canresize - boolean&lt;br /&gt;
    clientextent - string&lt;br /&gt;
    clientheight - integer&lt;br /&gt;
    clientwidth - integer&lt;br /&gt;
    clipmove - boolean - when the user moves the control (see canMove) then this makes sure that the control is not moving outside the parents bounds, by default true&lt;br /&gt;
    color - string&lt;br /&gt;
    editing - boolean&lt;br /&gt;
    extent - string - width and height of the control&lt;br /&gt;
    flickerbasetime - float - if you want to let controls flicker at different time but with the same frequency, then set this to some random value (e.g. random(0,1))&lt;br /&gt;
    flickering - boolean - lets the control automatically show and hide itself in flickertime intervals&lt;br /&gt;
    flickertime - float - says in what interval the control is shown and hidden, in seconds; works only in combination with flickering=true&lt;br /&gt;
    green - float&lt;br /&gt;
    height - integer&lt;br /&gt;
    hint - string - text which is displayed when the user moves the mouse over the control&lt;br /&gt;
    hinttime - float - says after how much time of not moving the mouse the hint should appear&lt;br /&gt;
    horizsizing - string - specifies the horizontal resizing behaviour when the parent control is resized: right, width, left, center or relative&lt;br /&gt;
    layer - integer [R]&lt;br /&gt;
    minextent - string - minimum width and height for the control which should be enforced&lt;br /&gt;
    minsize - string - the same like &amp;quot;minExtent&amp;quot;&lt;br /&gt;
    mode - integer - the control drawing mode (0 - add, 1 - transparent, 2 - subtract, 3 - daynight)&lt;br /&gt;
    parent - object [R]&lt;br /&gt;
    position - string&lt;br /&gt;
    profile - object&lt;br /&gt;
    red - float&lt;br /&gt;
    resizeheight - boolean&lt;br /&gt;
    resizewidth - boolean&lt;br /&gt;
    scrolllinex - integer - if this is the first control inside a GuiScrollCtrl, then this defines by how many pixel the scroll control is scrolled horizontally when clicking on the left/right scroll bar buttons&lt;br /&gt;
    scrollliney - integer - if this is the first control inside a GuiScrollCtrl, then this defines by how many pixel the scroll control is scrolled vertically when clicking on the up/down scroll bar buttons&lt;br /&gt;
    showhint - boolean - whether the hint should be shown when the user moves the mouse over the control&lt;br /&gt;
    style - string&lt;br /&gt;
    useownprofile - boolean&lt;br /&gt;
    vertsizing - string - specifies the vertical resizing behaviour when the parent control is resized: bottom, height, top, center or relative&lt;br /&gt;
    visible - boolean&lt;br /&gt;
    width - integer&lt;br /&gt;
    x - integer&lt;br /&gt;
    y - integer&lt;br /&gt;
    addcontrol(obj)&lt;br /&gt;
    bringtofront()&lt;br /&gt;
    clearcontrols()&lt;br /&gt;
    destroy()&lt;br /&gt;
    getparent() - returns object&lt;br /&gt;
    globaltolocalcoord(str) - returns string - converts global screen coordinates to a position relative to the controls origin (0,0), can be used to know where exactly the user has clicked inside a control&lt;br /&gt;
    hide()&lt;br /&gt;
    isactuallyvisible() - returns boolean&lt;br /&gt;
    isfirstresponder() - returns boolean&lt;br /&gt;
    localtoglobalcoord(str) - returns string - converts a position relative to the controls origin (0,0) to global screen coordinates, can be used to know where on the screen a control is displayed in case it is a child of another control (e.g. GuiWindowCtrl or GuiScrollCtrl)&lt;br /&gt;
    makefirstresponder(bool)&lt;br /&gt;
    pushtoback()&lt;br /&gt;
    resize(int, int, int, int)&lt;br /&gt;
    show()&lt;br /&gt;
    showtop() - calls show(), tabfirst() and bringtofront()&lt;br /&gt;
    startdrag()&lt;br /&gt;
    tabfirst() - returns object&lt;br /&gt;
&lt;br /&gt;
    EditManager (GuiControl):&lt;br /&gt;
&lt;br /&gt;
    GuiArrayCtrl (GuiControl):&lt;br /&gt;
      allowmultipleselections - boolean&lt;br /&gt;
&lt;br /&gt;
      GuiTextListCtrl (GuiArrayCtrl):&lt;br /&gt;
        clipcolumntext - boolean&lt;br /&gt;
        columns - string - of format &amp;quot;0 16&amp;quot;, offset of the tabulators&lt;br /&gt;
        enumerate - boolean&lt;br /&gt;
        fitparentwidth - boolean&lt;br /&gt;
        groupsortorder - string&lt;br /&gt;
        iconheight - integer [R]&lt;br /&gt;
        iconwidth - integer [R]&lt;br /&gt;
        resizecell - boolean&lt;br /&gt;
        selected - object [R]&lt;br /&gt;
        sortcolumn - integer&lt;br /&gt;
        sortmode - string&lt;br /&gt;
        sortorder - string&lt;br /&gt;
        addrow(int, str) - returns object - the added row&lt;br /&gt;
        clearrows()&lt;br /&gt;
        clearselection()&lt;br /&gt;
        findtext(str) - returns integer - row index&lt;br /&gt;
        findtextid(str) - returns integer - row id&lt;br /&gt;
        getrowatpoint(int, int) - returns integer - row index&lt;br /&gt;
        getrowidatpoint(int, int) - returns integer - row id&lt;br /&gt;
        getrownumbyid(int) - returns integer&lt;br /&gt;
        getselectedid() - returns integer - row id&lt;br /&gt;
        getselectedids() - returns object - array of row ids&lt;br /&gt;
        getselectedrow() - returns integer - row index&lt;br /&gt;
        getselectedrows() - returns object - array of row indices&lt;br /&gt;
        getselectedtext() - returns string&lt;br /&gt;
        insertrow(int, int, str) - returns object - the inserted row&lt;br /&gt;
        isidselected(int) - returns boolean&lt;br /&gt;
        isrowselected(int) - returns boolean&lt;br /&gt;
        makevisible(int)&lt;br /&gt;
        makevisiblebyid(int)&lt;br /&gt;
        removerow(int)&lt;br /&gt;
        removerowbyid(int)&lt;br /&gt;
        rowcount() - returns integer&lt;br /&gt;
        seticonsize(int, int)&lt;br /&gt;
        setrowactivebyid(int, bool)&lt;br /&gt;
        setrowbyid(int, str)&lt;br /&gt;
        setselectedbyid(int)&lt;br /&gt;
        setselectedbytext(str)&lt;br /&gt;
        setselectedrow(int)&lt;br /&gt;
        sort()&lt;br /&gt;
&lt;br /&gt;
      GuiTreeViewCtrl (GuiArrayCtrl):&lt;br /&gt;
        boxwidth - integer&lt;br /&gt;
        clipcolumntext - boolean&lt;br /&gt;
        columns - string - of format &amp;quot;0 16&amp;quot;, offset of the tabulators&lt;br /&gt;
        expanded - boolean&lt;br /&gt;
        expandedimage - integer&lt;br /&gt;
        expandedselectedimage - integer&lt;br /&gt;
        expandondoubleclick - boolean&lt;br /&gt;
        extent - string [R]&lt;br /&gt;
        firstlinevisible - boolean&lt;br /&gt;
        fitparentwidth - boolean&lt;br /&gt;
        groupsortorder - string&lt;br /&gt;
        height - integer [R]&lt;br /&gt;
        hint - string&lt;br /&gt;
        image - integer&lt;br /&gt;
        level - integer [R]&lt;br /&gt;
        name - string - same as 'text'&lt;br /&gt;
        nodes - object [R]&lt;br /&gt;
        parent - object [R]&lt;br /&gt;
        position - string [R]&lt;br /&gt;
        profile - object&lt;br /&gt;
        selectedimage - integer&lt;br /&gt;
        sortgroup - integer&lt;br /&gt;
        sortmode - string&lt;br /&gt;
        sortorder - string&lt;br /&gt;
        sortvalue - integer&lt;br /&gt;
        statuswidth - integer&lt;br /&gt;
        text - string&lt;br /&gt;
        useownprofile - boolean&lt;br /&gt;
        visible - boolean&lt;br /&gt;
        width - integer [R]&lt;br /&gt;
        x - integer [R]&lt;br /&gt;
        y - integer [R]&lt;br /&gt;
        addlines(obj, bool)&lt;br /&gt;
        addnode(str) - returns object&lt;br /&gt;
        addnodebypath(str, str) - returns object&lt;br /&gt;
        addvars(obj, bool)&lt;br /&gt;
        clearnodes()&lt;br /&gt;
        clearrows() - same as clearNodes()&lt;br /&gt;
        destroy()&lt;br /&gt;
        getfullname(str) - returns string&lt;br /&gt;
        getnode(str) - returns object&lt;br /&gt;
        getnodeat(int, int) - returns object&lt;br /&gt;
        getnodebypath(str, str) - returns object&lt;br /&gt;
        getselectednode() - returns object&lt;br /&gt;
        select()&lt;br /&gt;
        seticonsize(int, int)&lt;br /&gt;
        sort()&lt;br /&gt;
&lt;br /&gt;
    GuiBitmapBorderCtrl (GuiControl):&lt;br /&gt;
      tile - boolean&lt;br /&gt;
&lt;br /&gt;
    GuiBitmapButtonCtrl (GuiControl):&lt;br /&gt;
      mouseoverbitmap - string&lt;br /&gt;
      normalbitmap - string&lt;br /&gt;
      pressedbitmap - string&lt;br /&gt;
      text - string&lt;br /&gt;
      setbitmap(str, int)&lt;br /&gt;
&lt;br /&gt;
    GuiBitmapCtrl (GuiControl):&lt;br /&gt;
      bitmap - string&lt;br /&gt;
      tile - boolean - specifies if the bitmap should be repeated (true) or stretched (false)&lt;br /&gt;
      wrap - boolean - same as 'tile', kept for compatibility&lt;br /&gt;
      setbitmap(str)&lt;br /&gt;
      setvalue(int, int) - sets the offset of the image (horizontal and vertical)&lt;br /&gt;
&lt;br /&gt;
      GuiMapOverviewCtrl (GuiBitmapCtrl):&lt;br /&gt;
        mapalpha - float&lt;br /&gt;
        pointsize - float&lt;br /&gt;
&lt;br /&gt;
    GuiBrowserCtrl (GuiControl):&lt;br /&gt;
      url - string&lt;br /&gt;
&lt;br /&gt;
    GuiButtonBaseCtrl (GuiControl):&lt;br /&gt;
      buttontype - string&lt;br /&gt;
      checked - boolean&lt;br /&gt;
      groupnum - integer&lt;br /&gt;
      text - string&lt;br /&gt;
      gettext() - returns string&lt;br /&gt;
      performclick()&lt;br /&gt;
      settext(str)&lt;br /&gt;
&lt;br /&gt;
      GuiButtonCtrl (GuiButtonBaseCtrl):&lt;br /&gt;
        stylesection - string&lt;br /&gt;
        seticonsize(int, int)&lt;br /&gt;
&lt;br /&gt;
      GuiCheckBoxCtrl (GuiButtonBaseCtrl):&lt;br /&gt;
&lt;br /&gt;
        GuiRadioCtrl (GuiCheckBoxCtrl):&lt;br /&gt;
&lt;br /&gt;
    GuiContextMenuCtrl (GuiControl):&lt;br /&gt;
      clipcolumntext - boolean&lt;br /&gt;
      columns - string - of format &amp;quot;0 16&amp;quot;, offset of the tabulators&lt;br /&gt;
      enumerate - boolean&lt;br /&gt;
      fitparentwidth - boolean&lt;br /&gt;
      groupsortorder - string&lt;br /&gt;
      iconheight - integer [R]&lt;br /&gt;
      iconwidth - integer [R]&lt;br /&gt;
      maxpopupheight - integer&lt;br /&gt;
      profile - object&lt;br /&gt;
      resizecell - boolean&lt;br /&gt;
      rows - object [R]&lt;br /&gt;
      scrollprofile - object&lt;br /&gt;
      selected - object [R]&lt;br /&gt;
      sortcolumn - integer&lt;br /&gt;
      sortmode - string&lt;br /&gt;
      sortorder - string&lt;br /&gt;
      textprofile - object&lt;br /&gt;
      width - integer&lt;br /&gt;
      addrow(int, str) - returns object - the added row&lt;br /&gt;
      clearrows()&lt;br /&gt;
      clearselection()&lt;br /&gt;
      close()&lt;br /&gt;
      findtext(str) - returns integer - row index&lt;br /&gt;
      findtextid(str) - returns integer - row id&lt;br /&gt;
      getrowatpoint(int, int) - returns integer - row index&lt;br /&gt;
      getrowidatpoint(int, int) - returns integer - row id&lt;br /&gt;
      getrownumbyid(int) - returns integer&lt;br /&gt;
      getselectedid() - returns integer - row id&lt;br /&gt;
      getselectedids() - returns object - array of row ids&lt;br /&gt;
      getselectedrow() - returns integer - row index&lt;br /&gt;
      getselectedrows() - returns object - array of row indices&lt;br /&gt;
      getselectedtext() - returns string&lt;br /&gt;
      insertrow(int, int, str) - returns object - the inserted row&lt;br /&gt;
      isidselected(int) - returns boolean&lt;br /&gt;
      isopen() - returns boolean&lt;br /&gt;
      isrowselected(int) - returns boolean&lt;br /&gt;
      makevisible(int)&lt;br /&gt;
      makevisiblebyid(int)&lt;br /&gt;
      open(int, int) - opens the menu at the specified screen position, if possible use openAtMouse() instead&lt;br /&gt;
      openatmouse()&lt;br /&gt;
      removerow(int)&lt;br /&gt;
      removerowbyid(int)&lt;br /&gt;
      rowcount() - returns integer&lt;br /&gt;
      seticonsize(int, int)&lt;br /&gt;
      setrowactivebyid(int, bool)&lt;br /&gt;
      setrowbyid(int, str)&lt;br /&gt;
      setselectedbyid(int)&lt;br /&gt;
      setselectedbytext(str)&lt;br /&gt;
      setselectedrow(int)&lt;br /&gt;
      sort()&lt;br /&gt;
&lt;br /&gt;
      GuiStartMenuCtrl (GuiContextMenuCtrl):&lt;br /&gt;
        text - string&lt;br /&gt;
        width - integer&lt;br /&gt;
        gettext() - returns string&lt;br /&gt;
        settext(str)&lt;br /&gt;
&lt;br /&gt;
    GuiDrawingPanel (GuiControl):&lt;br /&gt;
      parth - integer [R]&lt;br /&gt;
      partw - integer [R]&lt;br /&gt;
      partx - integer [R]&lt;br /&gt;
      party - integer [R]&lt;br /&gt;
      clearall()&lt;br /&gt;
      clearrectangle(int, int, int, int)&lt;br /&gt;
      drawimage(int, int, str)&lt;br /&gt;
      drawimagerectangle(int, int, str, int, int, int, int)&lt;br /&gt;
      drawimagestretched(int, int, int, int, str, int, int, int, int)&lt;br /&gt;
      saveimage(str)&lt;br /&gt;
&lt;br /&gt;
    GuiFlash (GuiControl):&lt;br /&gt;
      backgroundalpha - float&lt;br /&gt;
      downloadwebfiles - boolean&lt;br /&gt;
      hideonoverlap - boolean&lt;br /&gt;
      loopmovie - boolean&lt;br /&gt;
      messageonoverlap - string&lt;br /&gt;
      moviename - string&lt;br /&gt;
      requiresactivex - boolean - same as requiresplugin&lt;br /&gt;
      requiresplugin - boolean - only displays the flash file if the flash plugin or activex control could be loaded&lt;br /&gt;
      tryactivex - boolean - same as tryplugin&lt;br /&gt;
      tryplugin - boolean - tries to load the flash plugin or activex control to display the flash file&lt;br /&gt;
      getflashvariable(str) - returns string&lt;br /&gt;
      loadmovie(str, bool, float)&lt;br /&gt;
      playmovie()&lt;br /&gt;
      restartmovie()&lt;br /&gt;
      setbackgroundalpha(float)&lt;br /&gt;
      setflashvariable(str, str)&lt;br /&gt;
      setlooping(bool)&lt;br /&gt;
      stopmovie()&lt;br /&gt;
&lt;br /&gt;
    GuiFrameSetCtrl (GuiControl):&lt;br /&gt;
      autobalance - boolean&lt;br /&gt;
      bordercolor - string&lt;br /&gt;
      borderenable - string&lt;br /&gt;
      bordermovable - string&lt;br /&gt;
      borderwidth - integer&lt;br /&gt;
      columncount - integer&lt;br /&gt;
      fudgefactor - integer&lt;br /&gt;
      minextent - string&lt;br /&gt;
      rowcount - integer&lt;br /&gt;
      getcolumncount() - returns integer&lt;br /&gt;
      getcolumnoffset(int) - returns integer&lt;br /&gt;
      getrowcount() - returns integer&lt;br /&gt;
      getrowoffset(int) - returns integer&lt;br /&gt;
      setcolumncount(int)&lt;br /&gt;
      setcolumnoffset(int, int)&lt;br /&gt;
      setrowcount(int)&lt;br /&gt;
      setrowoffset(int, int)&lt;br /&gt;
&lt;br /&gt;
    GuiGraal3DCtrl (GuiControl):&lt;br /&gt;
&lt;br /&gt;
    GuiGraalCtrl (GuiControl):&lt;br /&gt;
&lt;br /&gt;
    GuiInputCtrl (GuiControl):&lt;br /&gt;
&lt;br /&gt;
    GuiMenuCtrl (GuiControl):&lt;br /&gt;
      iconheight - integer [R]&lt;br /&gt;
      iconwidth - integer [R]&lt;br /&gt;
      addmenu(str) - returns object&lt;br /&gt;
      clearmenus()&lt;br /&gt;
      findmenu(str) - returns object&lt;br /&gt;
      removemenu(str)&lt;br /&gt;
      seticonsize(int, int)&lt;br /&gt;
&lt;br /&gt;
    GuiMLTextCtrl (GuiControl):&lt;br /&gt;
      allowcolorchars - boolean&lt;br /&gt;
      allowedtags - string&lt;br /&gt;
      alpha - float&lt;br /&gt;
      deniedsound - string&lt;br /&gt;
      disallowedtags - string&lt;br /&gt;
      htmlcompatibility - boolean&lt;br /&gt;
      htmllinks - boolean - will automatically open a webbrowser when clicking on a link if you don't want to do it yourself by handling onURL() events via script&lt;br /&gt;
      maxchars - integer&lt;br /&gt;
      parsetags - boolean&lt;br /&gt;
      syntaxhighlighting - boolean&lt;br /&gt;
      text - string&lt;br /&gt;
      urlbase - string&lt;br /&gt;
      wordwrap - boolean&lt;br /&gt;
      addtext(str, bool)&lt;br /&gt;
      getcursorline() - returns integer&lt;br /&gt;
      getline(int) - returns string&lt;br /&gt;
      getlinecount() - returns integer&lt;br /&gt;
      getlines() - returns object - array of lines&lt;br /&gt;
      gettext() - returns string&lt;br /&gt;
      reflow()&lt;br /&gt;
      scrolltobottom()&lt;br /&gt;
      scrolltotag(str)&lt;br /&gt;
      scrolltotop()&lt;br /&gt;
      setlines(obj)&lt;br /&gt;
      settext(str)&lt;br /&gt;
&lt;br /&gt;
Continued on [[Creation/Dev/Script/Clientside_Functions_Continued]]&lt;/div&gt;</summary>
		<author><name>Fowlplay4</name></author>
	</entry>
	<entry>
		<id>https://graalonline.net/index.php?title=Creation/Dev/Script/Functions/keydown&amp;diff=16835</id>
		<title>Creation/Dev/Script/Functions/keydown</title>
		<link rel="alternate" type="text/html" href="https://graalonline.net/index.php?title=Creation/Dev/Script/Functions/keydown&amp;diff=16835"/>
		<updated>2010-07-25T07:28:54Z</updated>

		<summary type="html">&lt;p&gt;Fowlplay4: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Scripting Reference]]&lt;br /&gt;
''Clientside''&lt;br /&gt;
&lt;br /&gt;
'''Description'''&lt;br /&gt;
&amp;lt;p&amp;gt;Used to check which key a player has held down.&amp;lt;/p&amp;gt;&lt;br /&gt;
''example:'' &amp;lt;pre&amp;gt;&lt;br /&gt;
function onKeyPressed()&lt;br /&gt;
{&lt;br /&gt;
  if (keydown(5))&lt;br /&gt;
  {&lt;br /&gt;
    player.chat = &amp;quot;You pressed s&amp;quot;;&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/pre&amp;gt;&amp;lt;p&amp;gt;Checks if the player presses the default sword key.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Notes'''&lt;br /&gt;
&amp;lt;p&amp;gt;Joysticks only work with keydown, not keydown2. &amp;lt;/p&amp;gt;&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;2&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|'''Value'''&lt;br /&gt;
|'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|0&lt;br /&gt;
|up&lt;br /&gt;
|-&lt;br /&gt;
|1&lt;br /&gt;
|left&lt;br /&gt;
|-&lt;br /&gt;
|2&lt;br /&gt;
|down&lt;br /&gt;
|-&lt;br /&gt;
|3&lt;br /&gt;
|right&lt;br /&gt;
|-&lt;br /&gt;
|4&lt;br /&gt;
|d (Weapon)&lt;br /&gt;
|-&lt;br /&gt;
|5&lt;br /&gt;
|s (Sword)&lt;br /&gt;
|-&lt;br /&gt;
|6&lt;br /&gt;
|a (Grab)&lt;br /&gt;
|-&lt;br /&gt;
|7&lt;br /&gt;
|m (Map)&lt;br /&gt;
|-&lt;br /&gt;
|8&lt;br /&gt;
|TAB (Chat Bar Toggle)&lt;br /&gt;
|-&lt;br /&gt;
|9&lt;br /&gt;
|q (Inventory)&lt;br /&gt;
|-&lt;br /&gt;
|10&lt;br /&gt;
|p (Pause)&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Fowlplay4</name></author>
	</entry>
	<entry>
		<id>https://graalonline.net/index.php?title=User_talk:Fowlplay4&amp;diff=7631</id>
		<title>User talk:Fowlplay4</title>
		<link rel="alternate" type="text/html" href="https://graalonline.net/index.php?title=User_talk:Fowlplay4&amp;diff=7631"/>
		<updated>2006-11-20T05:08:23Z</updated>

		<summary type="html">&lt;p&gt;Fowlplay4: howdy&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;a lil something something..&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
function onCreated() {&lt;br /&gt;
 showcharacter();&lt;br /&gt;
 this.chat = &amp;quot;Hello World!&amp;quot;;&lt;br /&gt;
 this.nick = &amp;quot;Fung Si Yan&amp;quot;;&lt;br /&gt;
 DoForExample();&lt;br /&gt;
}&lt;br /&gt;
function DoForExample() {&lt;br /&gt;
 temp.array = {&lt;br /&gt;
  1,this.nick,&amp;quot;string&amp;quot;&lt;br /&gt;
 };&lt;br /&gt;
 for(temp.var: temp.array) {&lt;br /&gt;
  echo(&amp;quot;temp.array[&amp;quot; @ 0 + temp.ind @ &amp;quot;]&amp;quot; SPC temp.var);&lt;br /&gt;
  temp.ind++;&lt;br /&gt;
 }&lt;br /&gt;
 /*&lt;br /&gt;
  RC Output:&lt;br /&gt;
  temp.array[0] 1&lt;br /&gt;
  temp.array[1] Fung Si Yan&lt;br /&gt;
  temp.array[2] string&lt;br /&gt;
 */ &lt;br /&gt;
} &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Fowlplay4</name></author>
	</entry>
	<entry>
		<id>https://graalonline.net/index.php?title=Creation/Dev/Excalibur%27s_scripting_guide&amp;diff=7630</id>
		<title>Creation/Dev/Excalibur's scripting guide</title>
		<link rel="alternate" type="text/html" href="https://graalonline.net/index.php?title=Creation/Dev/Excalibur%27s_scripting_guide&amp;diff=7630"/>
		<updated>2006-11-20T04:59:47Z</updated>

		<summary type="html">&lt;p&gt;Fowlplay4: /* '''Excalibur's Scripting Guide''' */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== '''Excalibur's Scripting Guide''' ==&lt;br /&gt;
I'm hoping this allows people to learn how to script a bit easier, I believe all staff should know some scripting basics, and I find other GS2 guides hard to follow. This should help you get started out. I'm afraid it isn't complete and there are a few typos in it. I'm working on it. &lt;br /&gt;
&lt;br /&gt;
Starting:&lt;br /&gt;
&lt;br /&gt;
Level NPCs:&lt;br /&gt;
&lt;br /&gt;
A level NPC is an npc that functions in a specific level. These are the most common on most servers. They are also a very important part of developement.&lt;br /&gt;
&lt;br /&gt;
A script:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
//this is a note&lt;br /&gt;
/*&lt;br /&gt;
&lt;br /&gt;
this is also a note, these help make scripts more clear&lt;br /&gt;
this type of note can go on as longe as it's inclosed&lt;br /&gt;
*/&lt;br /&gt;
//#CLIENTSIDE&lt;br /&gt;
//This tells the computer that the following&lt;br /&gt;
//script will be on the players client, &lt;br /&gt;
//as opposed to the server, this is very important.&lt;br /&gt;
function onPlayerTouchsMe()&lt;br /&gt;
//this checks if the player has touched the NPC&lt;br /&gt;
{ // starting bracket&lt;br /&gt;
  this.chat = &amp;quot;Hey!&amp;quot;; //displays a message above the NPC&lt;br /&gt;
}//closing bracket&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The above script checks to see if the event, playertouchsme is true, then acts on what is in the bracket. It is important to include this clientside, because too many serverside scripts can cause problems for an NPC server, however they are more secure. If you wanted to do the last script serverside, you would omit the //#CLIENTSIDE , and add the shape to the NPC:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
function onCreated()&lt;br /&gt;
{&lt;br /&gt;
  setshape(1,32,32);&lt;br /&gt;
  setimg(&amp;quot;block.png&amp;quot;);&lt;br /&gt;
//img can also be done in the box above the script&lt;br /&gt;
}&lt;br /&gt;
function onPlayertouchsme()&lt;br /&gt;
{&lt;br /&gt;
  this.chat = &amp;quot;You made a serverside script!&amp;quot;;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
This takes a bit longer than clientside commands, and it takes up serverside script time, however, for secure actions, it may be necessary.&lt;br /&gt;
A secure script example:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
function onCreated()&lt;br /&gt;
{&lt;br /&gt;
  this.account=&amp;quot;Excaliber7388&amp;quot;;&lt;br /&gt;
  setshape(1,32,32);&lt;br /&gt;
  this.chat=&amp;quot;Excaliber's Chest&amp;quot;;&lt;br /&gt;
}&lt;br /&gt;
function onPlayertouchsme()&lt;br /&gt;
{&lt;br /&gt;
  if(player.account==this.account)&lt;br /&gt;
  {&lt;br /&gt;
    this.chat=&amp;quot;This is a secure message!&amp;quot;;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
First, I would like to quickly point out the 'if' statement. Some guides go into this a lot, but it's actually quite simple. The if statement is a very important part of scripting. It's what allows the NPC to make choices. The code withing the brackets of an if statement will only execute if the statement is true. Also, there is a catchall statement you can use, else. If the if statement is not true, the else will exectue it's script, other wise it is ignored. &lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
//#CLIENTSIDE&lt;br /&gt;
function onCreated()&lt;br /&gt;
{&lt;br /&gt;
  this.a=1;&lt;br /&gt;
}&lt;br /&gt;
if(this.a==1) &lt;br /&gt;
//always use '==' for comparasons, NEVER just '=' as '=' is for assignments&lt;br /&gt;
{&lt;br /&gt;
  this.b=2;&lt;br /&gt;
}&lt;br /&gt;
else if(this.a==2) //will only execute if first is false, AND this.a==2&lt;br /&gt;
{&lt;br /&gt;
  this.b=3;&lt;br /&gt;
}&lt;br /&gt;
else //catch all if above 2 statements are false&lt;br /&gt;
{&lt;br /&gt;
  this.b=4;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Now, in the above example, this.b will always be 2, however, it's the format that's important.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
if(statement)&lt;br /&gt;
else if(statement)&lt;br /&gt;
else if(statement //may be used many times&lt;br /&gt;
else //catch all&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Now, back to serverside and clientside scripts:&lt;br /&gt;
By putting the checks on serverside, you disable a hackers ability to send an action from their client. So, this script is much more secure, and can only be accessed by the specified account (Excaliber7388 in this case). Most playerworlds and classic servers do these checks serverside as well, but we also apply a different method, to avoid having too much serverside script time:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
function onCreated()&lt;br /&gt;
{&lt;br /&gt;
  this.account=&amp;quot;Excaliber7388&amp;quot;;&lt;br /&gt;
  setshape 1,32,32;&lt;br /&gt;
  this.chat=&amp;quot;Excaliber's Chest&amp;quot;;&lt;br /&gt;
}&lt;br /&gt;
function onActiontouched()&lt;br /&gt;
{&lt;br /&gt;
  if(player.account==this.account)&lt;br /&gt;
  {&lt;br /&gt;
    this.chat=&amp;quot;Yup, this is still secure, yay!&amp;quot;;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
//#CLIENTSIDE&lt;br /&gt;
function onPlayertouchsme()&lt;br /&gt;
{&lt;br /&gt;
  triggeraction(x,y,&amp;quot;Touched&amp;quot;,&amp;quot;Touched&amp;quot;);//no params needed&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
This script will take up more time, but the playertouchsme check is clientside. Would this help much? Probably not, in fact, sending the action in this case would probably create more lag than having the script serverside. However, if a large portion of the script is serverside, and can be moved to clientside without risking security, it may be a good idea. &lt;br /&gt;
Serverisde timeouts=bad idea.&lt;br /&gt;
You shouldn't send to many actions to serverside, especially if you do so quickly. You should always limit the serverside timeouts, and the amount of time between actions to the server from client should be spaced out. Also, you should never have a timeout shorter than .05 on serverside, though it is possible, please do not do it. Many playerworlds have expierenced problems from serverside timeouts which can lead to NPC server crashing or lagging.&lt;br /&gt;
&lt;br /&gt;
Here are two examples of serverside scripts, the first is [b]VERY[/b] bad, the second is more productive:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
function onCreated()&lt;br /&gt;
{&lt;br /&gt;
  setshape 1,32,32;&lt;br /&gt;
}&lt;br /&gt;
function onActiontime()&lt;br /&gt;
{&lt;br /&gt;
  for(server.i=0;server.i&amp;lt;5;server.i++)&lt;br /&gt;
 //WHY use server for this???&lt;br /&gt;
 //for loops, use this. it works only for this NPC&lt;br /&gt;
  {&lt;br /&gt;
    sleep(.01); &lt;br /&gt;
//WAY to short of a sleep time for the server&lt;br /&gt;
   }   &lt;br /&gt;
    server.time+=.1;&lt;br /&gt;
}&lt;br /&gt;
//#CLIENTSIDE&lt;br /&gt;
function onCreated()&lt;br /&gt;
{&lt;br /&gt;
  settimer(.05); //minimum clientside timeout&lt;br /&gt;
}&lt;br /&gt;
function onTimeout()&lt;br /&gt;
{&lt;br /&gt;
  trigegraction(x,y,&amp;quot;time&amp;quot;,&amp;quot;time&amp;quot;);&lt;br /&gt;
  settimer(.05);&lt;br /&gt;
//Will cause a loop through the timeout, sending action &lt;br /&gt;
//to serverside TOO quickly, AND while the server is &lt;br /&gt;
//still working on the last action. This WILL cause the &lt;br /&gt;
//server to crash.&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
If you put the above script on a server, say goodbye to your NPC server, because it will crach pretty quickly!&lt;br /&gt;
A better version:&lt;br /&gt;
&amp;lt;pre&amp;gt;function onCreated()&lt;br /&gt;
{&lt;br /&gt;
  setshape 1,32,32;&lt;br /&gt;
  //setshape is needed for all level NPCs triggeractions&lt;br /&gt;
  //this sets it to a square of tiles 32x32 pixels.&lt;br /&gt;
}&lt;br /&gt;
function onActiontime()&lt;br /&gt;
{&lt;br /&gt;
  server.time++;&lt;br /&gt;
  //no need for incredible accuracy&lt;br /&gt;
}&lt;br /&gt;
//#CLIENTSIDE&lt;br /&gt;
function onCreated()&lt;br /&gt;
{&lt;br /&gt;
  settimer(1);&lt;br /&gt;
}&lt;br /&gt;
function onTimeout()&lt;br /&gt;
{&lt;br /&gt;
  triggeraction(x,y,&amp;quot;time&amp;quot;,&amp;quot;time&amp;quot;);&lt;br /&gt;
  settimer(1);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
This will execute the script less often, however, it still is an unlimited loop. Don't have too many of these NPCs, or you could have problems!&lt;br /&gt;
&lt;br /&gt;
Now, you may have noticed this line in the bad script:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  for(server.i=0;server.i&amp;lt;5;server.i++)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
This is a 'for' loop. There are many types of loops, however the for loop isn't the easiest to learn first. Therefore, I will show you the 'while loop' first.&lt;br /&gt;
The while loop executes whatever is held within it's brackets as long as the statement within it is true. The while loop is just like an if statement, but you cannot use else with a with statement.&lt;br /&gt;
format:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
while(statments)&lt;br /&gt;
{&lt;br /&gt;
  //commands&lt;br /&gt;
}&lt;br /&gt;
//if statment is still true, it will loop&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
here's a script example:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
//#CLIENTSIDE&lt;br /&gt;
function onCreated()&lt;br /&gt;
{&lt;br /&gt;
  this.size=10;&lt;br /&gt;
}&lt;br /&gt;
while(this.size&amp;lt;=20) //while this.size is less than or equal to 20&lt;br /&gt;
{&lt;br /&gt;
  this.chat=&amp;quot;The fish was &amp;quot; @this.size@ &amp;quot; centimeters long!&amp;quot;;&lt;br /&gt;
  //as the story is retold....&lt;br /&gt;
  sleep(.5);&lt;br /&gt;
  this.size=this.size+1;&lt;br /&gt;
  //increment the size&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The above script will run through the loop until this.size is equal or greater than 20.&lt;br /&gt;
Some important things to know:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
if(a==b) means if a is equal to b&lt;br /&gt;
if(a&amp;lt;b) means if a is less than b&lt;br /&gt;
if(a&amp;gt;b) means if a is greater than b&lt;br /&gt;
if(a&amp;lt;=b) means if a is less than or equal to be&lt;br /&gt;
if(a&amp;gt;=b) means if a is greater than or equal to be&lt;br /&gt;
a++      is the same as a=a+1&lt;br /&gt;
a--      is the same as a=a-1&lt;br /&gt;
a+=b    means a=a+b&lt;br /&gt;
a-=b    means a=a-b&lt;br /&gt;
a*=b    means a=a*b (multiplied by b)&lt;br /&gt;
a/=b    means a=a/b&lt;br /&gt;
++a     is just like a, but it will add to a before anything else in the line, &lt;br /&gt;
         this is not important to know now&lt;br /&gt;
--a     just like ++a, but with subtraction&lt;br /&gt;
a%b     Modulus, basically, its a/b and th remainder is the output &lt;br /&gt;
        for example 10%3=1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
These may be helpfull in loops, or in any other rational expressions you may use. (Well, it's important for all scripting!)&lt;br /&gt;
Now, recall this line:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  this.chat=&amp;quot;The fish was &amp;quot; @this.size@ &amp;quot; centimeters long!&amp;quot;;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The output for this is: The fish was (size here) centimeters long!&lt;br /&gt;
The script NEEDS to know where a variable is, so if you want to put it in between a string you surround it with the '@' symbol. Or if it's at the end, you only put the '@' at the beggining of the variable. The variable and the '@' do NOT go in the quotes. Example:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
//#CLIENTSIDE&lt;br /&gt;
function onPlayertouchsme()&lt;br /&gt;
{&lt;br /&gt;
  this.chat=&amp;quot;Well hi there, &amp;quot; @player.account@ &amp;quot; I like your sword, &amp;quot; @player.swordimg;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
This would display the player's account, and sword image.&lt;br /&gt;
&lt;br /&gt;
Now, back to the 'for' loop.&lt;br /&gt;
This a very interesting loop it's format is as follows:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
for(command;expression;command)&lt;br /&gt;
{&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Here's an example:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
//#CLIENTSIDE&lt;br /&gt;
function onPlayertouchsme()&lt;br /&gt;
{&lt;br /&gt;
  for(this.i=0;this.i&amp;lt;10;this.i++)&lt;br /&gt;
  {&lt;br /&gt;
    this.chat=&amp;quot;Loops: &amp;quot; @this.i;&lt;br /&gt;
    sleep(.5);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
This loop would be activated when the player touchs it.&lt;br /&gt;
It would go through 10 loops, displaying the count, and taking .5 seconds for each loop (due to the sleep() command)&lt;br /&gt;
Now remember this while loop?&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
function onCreated()&lt;br /&gt;
{&lt;br /&gt;
  this.size=10;&lt;br /&gt;
}&lt;br /&gt;
while(this.size&amp;lt;=20)&lt;br /&gt;
{&lt;br /&gt;
  this.chat=&amp;quot;The fish was &amp;quot; @this.size@ &amp;quot; centimeters long!&amp;quot;;&lt;br /&gt;
  //as the story is retold....&lt;br /&gt;
  sleep(.5);&lt;br /&gt;
  this.size=this.size+1;&lt;br /&gt;
  //increment the size&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
There's an easier way of doing it with a for loop, in fact all loops done with while can be replaced by for.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
for(this.size=10;this.size&amp;lt;=20;this.size++)&lt;br /&gt;
{&lt;br /&gt;
  this.chat=&amp;quot;The fish was &amp;quot; @this.size@ &amp;quot; centimeters long!&amp;quot;;&lt;br /&gt;
  sleep(.5);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
See? Much shorter and easier to use!&lt;br /&gt;
Once you know the format of a for loop, you can make longer and more complex loops as well, and they'll take less time to script, which is always a bonus.&lt;br /&gt;
&lt;br /&gt;
Some more detail on actions:&lt;br /&gt;
An action is an effective way to use a portion of script more than once, have one script act on another script, more script to serverside from clientside (and the other way) and more.&lt;br /&gt;
So how do you use them? Here's the format:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
triggeraction(x,y,&amp;quot;params[0]&amp;quot;,&amp;quot;params[1]&amp;quot;);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
You must have two parameters, but you can have as many as you want a quick example:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
function onCreated()&lt;br /&gt;
{&lt;br /&gt;
  setshape 1,32,32;&lt;br /&gt;
}&lt;br /&gt;
function onActiontrigger()&lt;br /&gt;
{&lt;br /&gt;
  player.chat=&amp;quot;Account: &amp;quot; @params[1]@ &amp;quot; Sword &amp;quot; @params[2]@ &amp;quot; head: &amp;quot; @params[3];&lt;br /&gt;
}&lt;br /&gt;
//#CLIENTSIDE&lt;br /&gt;
function onPlayerchats()&lt;br /&gt;
{&lt;br /&gt;
  if(player.chat==&amp;quot;Who am I?&amp;quot;) //amnesia? multiple identities?&lt;br /&gt;
  {&lt;br /&gt;
    triggeraction(x,y,&amp;quot;trigger&amp;quot;,player.account,player.swordimg,player.headimg);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
See? You can make more than one parameter.&lt;br /&gt;
Now, there are a few differences between a level NPC with a triggeraction, and a weapon with a triggeraction. Weapons need their location (serverside or clientside) as the first parameter, params[0] is the one after it. Here, you can have just one parameter, and the x and y is always 0 (because the npc server is at 0,0), and you need to include the name of the weapon in the action.&lt;br /&gt;
here's an example:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
//weapon script with a triggeraction &lt;br /&gt;
//Weapon name: Fire Ball&lt;br /&gt;
function onActionserverside()&lt;br /&gt;
{&lt;br /&gt;
  if(params[0]==&amp;quot;mp&amp;quot;)&lt;br /&gt;
  {&lt;br /&gt;
    playermp-=10&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
//#CLIENTSIDE&lt;br /&gt;
function onWeaponfired()&lt;br /&gt;
{&lt;br /&gt;
  if(playermp&amp;gt;=10)&lt;br /&gt;
  {&lt;br /&gt;
    shootfireball(playerdir);&lt;br /&gt;
    triggeraction(0,0,&amp;quot;serverside&amp;quot;,&amp;quot;Fireball&amp;quot;,&amp;quot;mp&amp;quot;);&lt;br /&gt;
  }&lt;br /&gt;
  else&lt;br /&gt;
  {&lt;br /&gt;
    player.chat=&amp;quot;Not enough mp!&amp;quot;;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
This nifty little weapon will cost 10 mp per use, and fires a fireball in the direction the player is facing. Hopefully, you can learn to make many weapons of your own!&lt;br /&gt;
Triggeractions can be used in shops as well (and these are the scripts people ask for the most).&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
//a shop script, yay!&lt;br /&gt;
function onCreated()&lt;br /&gt;
{&lt;br /&gt;
  setshape 1,32,32;&lt;br /&gt;
}&lt;br /&gt;
function onActionbuy()&lt;br /&gt;
{&lt;br /&gt;
  if(playerrupees&amp;gt;=100)&lt;br /&gt;
  {&lt;br /&gt;
    addweapon Fire Ball;&lt;br /&gt;
    playerrupees-=100;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
//#CLIENTSIDE&lt;br /&gt;
function onPlayerchats()&lt;br /&gt;
{&lt;br /&gt;
  if(player.chat==&amp;quot;buy fire ball&amp;quot;)&lt;br /&gt;
  {&lt;br /&gt;
    triggeraction(x,y,&amp;quot;buy&amp;quot;,&amp;quot;buy&amp;quot;); &lt;br /&gt;
    //the level npc triggeraction type&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
There, now you can make a little shop that sells a Fire Ball weapon. Have fun with it, search the commands, there's plenty of easy weapons you can make, and the weapon script is easy to follow and modify as well. Hopefully, you know enough about parameters to make more than one weapon for sale in the same NPC, just make the weapon name part of the action, then check for that parameter before they can buy. &lt;br /&gt;
 Now there are other types of loops. One I commonly see is a timeout loop. You should understand why. Back with GS1, it was a bit easier to tell what was happening in the script. In GS1 the script for function onTimeout() would be displayed as if(timeout). It was a bit easier to tell that when a timeout was done, it set a flag that if(timeout) would check. function onTimeout does the same thing, however, for new users this may be harder to tell. here's an example of an NPC that uses a timeout loop:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
//#CLIENTSIDE&lt;br /&gt;
function onCreated()&lt;br /&gt;
{&lt;br /&gt;
  settimer(1);&lt;br /&gt;
}&lt;br /&gt;
function onTimeout()&lt;br /&gt;
{&lt;br /&gt;
  player.chat=&amp;quot;Counter: &amp;quot; @this.time;&lt;br /&gt;
  this.time++;&lt;br /&gt;
  settimer(1); &lt;br /&gt;
//after 1 second, the timeout loop will restart&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
This would cause the player to count up every second.&lt;br /&gt;
You may have noticed that the variables often start of with client. or this. There are actually a few prefixes, each does a different thing:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
client. variable is saved to the client, it can be modified on the clientside or serverside, and read from either.&lt;br /&gt;
clientr. variables can be rad from server or clientside, but only written from serverside. This is more secure, but only if you use it right.&lt;br /&gt;
server. variables are saved to the server, can only be written on the serverside, read on either side&lt;br /&gt;
serverr. more secure version of server. read only on clientside&lt;br /&gt;
this. is a variable that only functions in the NPC it is in. This prevents NPCs from morifying each others variables&lt;br /&gt;
temp. only exists in between the brackets of a function&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
To use scripts effectivly, you should know how to use each of these.&lt;br /&gt;
I will add more over time.&lt;br /&gt;
&lt;br /&gt;
Some important commands can be found here:&lt;br /&gt;
page:http://wiki.graal.net/index.php/Creation/Dev/Script/Starting_Guide#Introduction&lt;br /&gt;
Which is also helpful for learning how to script. Enjoy!&lt;/div&gt;</summary>
		<author><name>Fowlplay4</name></author>
	</entry>
</feed>