V5.1.2.0 to V6.0.0.7 Script Functions Diff

Next Diff: V6.0.0.7 to V6.0.1.0

Last Updated August 11th 2011
Legend:
+ Added
- Removed

Show Added Lines Only | Show Removed Lines Only | Show All

@@ -1,16 +1,48 @@
 Global:
-  $pref::audio::choosenvoicecodec - integer
-  $pref::audio::microactivatebyvolume - boolean
-  $pref::audio::microactivationlevel - integer
-  $pref::audio::microinputdevice - integer
-  $pref::audio::microon - boolean
-  $pref::audio::microvolumefactor - integer
+  onClassLoaded(str) event - a class script has been updated: name of the class
+  onConnectingToServer(str, str, int) event - connecting to: servername, address, port
+  onControlKeyDown(int, str, int, str) event - a control key (VK_ESCAPE, VK_F1 etc.) has been pressed, parameters are keycode, keytext, scancode, external window name
+  onControlKeyUp(int, str, int, str) event - a control key (VK_ESCAPE, VK_F1 etc.) has been released, parameters are keycode, keytext, scancode, external window name
+  onDefaultStyleChanges(str) event - the $pref::Video::defaultguistyle has been changed
+  onFileChunkReceived(str, int, int) event - file download progress: filename, current position, full size
+  onFileDownloaded(str, int) event - a game file has been downloded: filename, size
+  onFilesUploaded() event - finished uploading all files to the file browser
+  onFirstResponderChanges(obj) event - the control that received the keyboard input changed
+  onFirstResponderChanges(obj) event - the control that received the keyboard input changed
+  onFolderLog(str) event - scripted RC file browser message
+  onLevelFileUpdated(str) event - a game file has been updated: filename
+  onLogMessage(str, float, float, float, str) event - log message: text, red, green, blue, log type
+  onMapClick(obj) event - clicked on a player on the map: player object
+  onMouseYawPitch(int, int) event - the mouse moved in 3D mode: yaw and pitch
+  onMouseYawPitch(int, int) event - the mouse moved in 3D mode: yaw and pitch
+  onMusicDataReceived(str, str) event - music meta data received: name and value
+  onOpenHelpWindow() event - the key for opening the help window (F1) has been pressed
+  onOpenLogWindow() event - the key for opening the log window (F2) has been pressed
+  onOpenOptionsWindow() event - the key for opening the options window (F3) has been pressed
+  onOpenPlayerList() event - the key for opening the player list (F7) has been pressed
+  onOpenPlayerPositionWindow() event - the key for opening the positon window (F5) has been pressed
+  onOpenProfileWindow(obj) event - right click on a player or call to showProfile() to open the profile window
+  onOpenServerList() event - the key for opening the serverlist (F8) has been pressed
+  onPackagesDownloadComplete() event - all update packages (.gupd files) have been downloaded
+  onPackagesDownloaded() event - some update packages (.gupd files) have been downloaded
+  onPlayerChanges(obj, int) event - the look of a player changed: player object and id
+  onPlayerLanguageChanges(obj, str) event - the language of the player has changed: player object, new language
+  onPlayerLogin(obj, int) event - a player logged in: player object and id
+  onPlayerLogout(obj, int) event - a player logged out: player object (might be NULL) and id
+  onPM(obj) event - received a PM from a player: player object
+  onRCChat(str) event - scripted RC chat: text
+  onRemotePlayerChats(obj, str) event - another player is saying something: player object, text
+  onSelectedFileForUpload(str) event - selected a file, call uploadfile(filename)
+  onServerListerConnect() event - a connection to the server-lister (central server) established
+  onServerLogin() event - logged into a server
+  onToall(obj, str) event - received a toall message: player object and message
+  onTranslationUpdated(str) event - a translation file (.po) has been updated
+  onUpdatePackageDownloaded(obj) event - downloaded an update package (.gupd): package object
   $pref::audio::midivolume - integer
   $pref::audio::mp3volume - integer
   $pref::audio::radiovolume - integer
   $pref::audio::reversestereo - boolean
   $pref::audio::sfxvolume - integer
-  $pref::audio::voicevolume - integer
   $pref::capture::allowbyscript - boolean (read only)
   $pref::capture::area - string
   $pref::capture::audiobitrate - integer
@@ -24,34 +56,28 @@ Global:
   $pref::capture::videobitrate - integer
   $pref::graal::allowglobalpms - boolean
   $pref::graal::automapping - boolean
+  $pref::graal::cachefilenames - boolean
   $pref::graal::defaultfontname - string
   $pref::graal::defaultfontsize - integer
-  $pref::graal::dontconnectlevels - boolean
-  $pref::graal::dontloadlistheads - boolean
+  $pref::graal::displaytrayicon - boolean
+  $pref::graal::docktodesktop - boolean
   $pref::graal::dontsavepasswords - boolean
   $pref::graal::dontsavepms - boolean
-  $pref::graal::fixedport - boolean
-  $pref::graal::fixedudpport - integer
   $pref::graal::language - string
   $pref::graal::limitnicknames - boolean
   $pref::graal::loadbuddylistfromserver - boolean
   $pref::graal::nicknamelimit - integer
   $pref::graal::nomassmessages - boolean
   $pref::graal::notoalls - boolean
-  $pref::graal::noudp - boolean
   $pref::graal::showyourselfonbuddylists - boolean
-  $pref::input::mousesensitivity - float
-  $pref::interior::lockarrays - boolean
   $pref::video::defaultguistyle - string
-  $pref::video::detailfactor - float
-  $pref::video::fogdistance - float
   $pref::video::fullscreenmode - string
   $pref::video::resolution - integer
   $pref::video::screenshotformat - string
-  $pref::video::visibledistance - float
   $pref::video::windowmode - string
-  $scenelighting::lightingprogress - float (read only)
   allfeatures - integer (read only)
+  allowedimageanimations - string - sets a list of images which will be animated, set to "all" to allow all animations
+  allowloginreconnect - boolean
   allplayerscount - integer (read only)
   allrenderobjecttypes - integer (read only)
   allstats - integer (read only)
@@ -62,11 +88,16 @@ Global:
   carriessign - boolean (read only)
   carriesstone - boolean (read only)
   carriesvase - boolean (read only)
+  disableactionprojectile - boolean - by default the player and npcs get an onActionProjectile event when a projectile hits them; with this flag you can disable that for speedup
+  disableactionprojectile2 - boolean - when a projectile lands on the ground or hits an object then an event onActionProjectile2 is sent to all scripts; with this flag you can disable that for speedup; on mobile platforms it's disabled by default
+  disablenpchits - boolean - disables detection of npcs hitting players or baddies; can speed up things on maps with many npcs
+  disablenpconnpchits - boolean - disables detection of client-side npcs hitting each other with sword; can speed up things on maps with many npcs; by default disabled on mobile platforms
   downloadfile - string (read only)
   downloadpos - integer (read only)
   downloadsize - integer (read only)
-  editingmission - boolean
+  drawallinsidenpcs - boolean - set this to true if you want all npcs being displayed in non-gmap levels (possibly needed if you have many npcs using showimg())
   emoticonchar - string (read only)
+  enableganimoviereposition - boolean
   focusx - float (read only)
   focusy - float (read only)
   ghostsnear - boolean (read only)
@@ -77,13 +108,12 @@ Global:
   isapplicationactive - boolean (read only)
   iscarrying - boolean (read only)
   isfocused - boolean (read only)
-  isgraal3d - boolean (read only)
   isgraalplugin - boolean (read only)
   isleader - boolean (read only)
   isonmap - boolean (read only)
   isopengl - boolean (read only)
   isrecordingvideo - boolean (read only)
-  isstreamingvideo - boolean (read only)
+  isstreamingvideo - string (read only)
   jpegquality - integer
   lastdownloadfile - string (read only)
   leftmousebutton - boolean (read only)
@@ -91,23 +121,23 @@ Global:
   levelorgx - float (read only)
   levelorgy - float (read only)
   lighteffectsenabled - boolean
+  loadingscreenenabled - boolean - must be disabled by script starting with v5.226
   middlemousebutton - boolean (read only)
   middlemousebuttonglobal - boolean (read only)
   mousebuttons - integer (read only)
   mousebuttonsglobal - integer (read only)
-  mousepitch - float (read only)
   mousescreenx - integer
   mousescreeny - integer
   mousewheeldelta - integer (read only)
   mousex - float
   mousey - float
-  mouseyaw - float (read only)
-  musiclen - integer (read only)
-  musicpos - integer (read only)
+  musiclen - float (read only)
+  musicpos - float (read only)
   particleeffectsenabled - boolean
   rightmousebutton - boolean (read only)
   rightmousebuttonglobal - boolean (read only)
   screenheight - integer (read only)
+  screenpixelscale - float (read only)
   screenwidth - integer (read only)
   scriptedcontrols - boolean (read only)
   scriptedplayerlist - boolean (read only)
@@ -125,19 +155,14 @@ Global:
   statusimage - string
   timevar - integer (read only)
   timevar2 - float (read only)
-  timevar3 - float (read only) - synchronized time which works on both server- and client-side, precision is milliseconds, only available for Graal3D right now
   wasshooted - boolean (read only)
+  watercolorflags - integer - changes the color of the 3d terrain, it's made of bit flags (default is 4):  1 - red highlight, 2 - green highlight, 4 - blue highlight,  8 - red clear, 16 - green clear, 32 - blue clear
   waterheight - float
   weapons - object (read only)
   weaponsenabled - boolean
   weathereffectsenabled - boolean
-  worldclockstopped - boolean
-  worldhour - integer
-  worldminute - float
-  worldminutesofday - float
-  worldrealsecondsperday - float
   addcontrol(obj)
-  addmaterialmapping(str, str) - returns boolean
+  adddnsentry(str, str)
   addtiledef(str, str, int)
   addtiledef2(str, str, int, int)
   aindexof(float, obj) - returns integer
@@ -153,19 +178,26 @@ Global:
   boxscale(str, str) - returns string
   callnpc(int, params...)
   callweapon(int, params...)
-  castray(str, str, str) - returns object - specify the start and end of the ray, and the object types (e.g. "staticts,terrain,interior")
   checksum(str) - returns float
+  clearemptyglobalvars() - clears non-static empty global variables; this is mainly interesting on server-side
   contains(str, str) - returns boolean
+  converttimetostring(float) - returns string - prints the timevar2 like 'Wed Apr  8 20:53:13 2009', see formatTimeString() for more options
   copystrings(str, str)
   cursoroff()
+  cursoroff()
+  cursoron()
   cursoron()
+  decompressfile(str, str, str, int) - returns boolean - parameters are filename, file name pattern (*), destination folder and flags (1 (keep zip paths) + 2 (keep original modification time)); unzips a file into the specified folder
   degtorad(float) - returns float
+  deletefile(str) - returns boolean
   detachplayer()
+  dhd<Íôüð äðøÏÏøÛÛ() - returns string
   disabledefmovement()
   disablemap()
   disablepause()
   disableselectweapons()
   disableweapons()
+  downloadfiletofolder(str, str) - download a file (from the currently opened folder in scripted RC) to the specified destination (folder+name), if the script has access to the folder
   echo(str)
   enabledefmovement()
   enablefeatures(int)
@@ -173,7 +205,9 @@ Global:
   enablepause()
   enableselectweapons()
   enableweapons()
-  escapestring(str) - returns string - adds \\ in front of ", ' and \\, and removes non-printable characters
+  escapefilename(str) - returns string
+  escapestring(str) - returns string - adds \ in front of ", ' and \, and removes non-printable characters; made for mysql queries, same as string.escape()
+  escapestringkeepnewline(str) - returns string - adds \ in front of ", ' and \, and removes non-printable characters, but keeps new line characters
   explodebomb(int)
   extractfilebase(str) - returns string
   extractfileext(str) - returns string
@@ -181,9 +215,10 @@ Global:
   extractfilepath(str) - returns string
   fileexists(str) - returns boolean
   filesize(str) - returns integer
-  fileupdate(str) - returns boolean
+  fileupdate(str) - returns boolean - requests the download or reloading of a file
+  fileupdateignore(str) - ignores further updates of the file on server-side
   findani(str) - returns object
-  findfiles(str, int) - returns object
+  findfiles(str, int) - returns object - returns an array of found files, parameter are the pattern and flags (1=search recursive)
   findlevel(str) - returns object
   findnearestplayer(float, float) - returns object
   findnearestplayers(float, float) - returns object
@@ -194,24 +229,19 @@ Global:
   findplayerbyid(int) - returns object
   findweapon(str) - returns object
   format2(str, obj) - returns string - like format(), except that this expects the format string and an array of variables instead of passing the variables as separate parameters
+  formattimestring(str, float) - returns string - formats a string like the strftime unix function, parameters are the format and time
+  freeallresources()
   freefileresources(str)
   freezeplayer(float)
-  get3dobjectat(float, float, bool) - returns object - gets the 3d object at the specified screen position, third parameter says if it should do box collision
-  get3dobjectatmouse(bool) - returns object - gets the 3d object at the mouse, specify if it should do box collision (true)
-  get3dobjectbyray(str, str) - returns object
-  get3dobjectsbybox(str, str) - returns object - specify the box {minx,miny,minz,maxx,maxy,maxz} and the object types to find (e.g. "staticts,terrain,interior")
-  get3dobjectsbyradius(str, float, str) - returns object - specify the position, radius and the object types to find (e.g. "staticts,terrain,interior")
-  get3dscreenposition(str, bool) - returns string
-  getanglesfromvector(str) - returns object
   getascii(str) - returns integer
   getbasepackage() - returns object
   getboxcenter(str) - returns string
-  getdesktopresolution() - returns string
-  getdisplaydevicelist() - returns string
+  getcallstack() - returns object
+  getdisplaydevicelist() - returns object - lists available display devices (OpenGL, DirectX9)
   getdownloadedupdatepackagesize() - returns integer
   getdownloadingpackage() - returns object
   getdownloadingpackagescount() - returns integer
-  getdropz(str) - returns float
+  getdownloadprogress(str) - returns float
   getextension(str) - returns string - same as extractFileExt()
   getfilemodtime(str) - returns integer - gets the file modifcation time (in unix time compatible to timevar2); accepts both exact file path and plain file name
   gethttprequest(str, int, str) - returns object
@@ -222,6 +252,7 @@ Global:
   getloginaccountname() - returns string
   getmapx(str) - returns integer
   getmapy(str) - returns integer
+  getmemoryusage() - returns integer
   getmusicfilename() - returns string - returns the currently played music
   getmusicstatus() - returns string
   getmusictags() - returns object
@@ -230,18 +261,18 @@ Global:
   getpackagesdownloadcomplete() - returns boolean
   getpackagesdownloaded() - returns boolean
   getplatform() - returns string
-  getresolutionlist(str) - returns string
+  getplayerlisticons() - returns object
+  getpremiumoption() - returns string
+  getresolutionlist() - returns object - lists available fullscreen resolutions for the current device
+  getscriptaccessfile(str, bool) - returns string
   getservername() - returns string
   getstringkeys(str) - returns object
-  getterraintexture(float, float) - returns string
-  getterraintextureindex(float, float) - returns integer
   gettextheight(float, str, str) - returns integer
   gettextwidth(float, str, str, str) - returns integer
   gettileset() - returns string - returns the current main tileset (pics1.png, picso.png etc.)
   gettilesettype() - returns integer - returns the current tileset type (pics1.png:0, picso.png:5 etc.)
   gettotalupdatepackagesize() - returns integer
   getupdatepackage(str) - returns object
-  getvectorfromangles(float, float) - returns string
   getz(float, float) - returns float
   graalcontrolhasfocus(bool) - returns boolean - parameter says if it should also check if the chat bar has the focus
   hideplayer(float)
@@ -252,30 +283,32 @@ Global:
   isadminguild(str) - returns boolean
   isclassloaded(str) - returns boolean
   iscursoron() - returns boolean
-  isdevicefullscreenonly(str) - returns boolean
+  iscursoron() - returns boolean
+  isdemoversion() - returns boolean
   isdownloading(str) - returns boolean - checks if a file is currently downloaded or requested from the server
-  isdownloadingfiles() - returns boolean - checks if Graal is currently downloading or requesting files from the server
+  isdownloadingfiles() - returns boolean - checks if the game is currently downloading or requesting files from the server
   isfullscreenmode() - returns boolean
   isimgpixeltransparent(str, int, int) - returns boolean
   isimgrectangletransparent(str, int, int, int, int) - returns boolean
   ismusicplaying() - returns boolean
   isobject(str) - returns boolean
-  issoundplaying(str) - returns boolean
+  isofflinemode() - returns boolean - says if the game is running in offline mode (only for special packaged games)
+  ispremiumversion() - returns boolean
+  issoundplaying(str) - returns boolean - returns if a sound with the specified filename is playing
   keydown(int) - returns boolean
   keydown2(int, bool) - returns boolean
   keydown2global(int, bool) - returns boolean
   keydownglobal(int) - returns boolean
-  keyname(int) - returns string
+  keyname(int) - returns string - returns the name of a default action key (0-11)
+  keyname2(int) - returns string - returns the name of a key, parameter is the keycode
   lay2(str, float, float)
-  lightscene() - returns boolean
-  loadclass(str)
+  loadclass(str) - preloads the clientside script of a class
   loadmap(str)
   loadtranslation(str)
   lowercase(str) - returns string
-  ltmfs(bool)
-  ltmmax(float, float)
-  ltmmin(float, float)
-  makescreenshot2(str, int, float, float, float, int, int)
+  makescreenshot2(str, int, float, float, float, int, int) - makes a screenshot without gui, parameters are filename, render bit flags (1 (local player) + 2 (other players) + 4 (npcs) + 8 (particles from removed objects) + 0x10 (weapon showimgs) + 0x20 (daynight effect), or 0x3f for everything), levelx, levely, levelz, pixelwidth and pixelheight
+  makescreenshotfull(str, int, int) - makes a screenshot including gui and saves under the specified filename and width and height, pass values of -1 for width and height if you want to use the screen size
+  makescreenshotgame(str, int, int, int) - makes a screenshot without gui, parameters are filename, render bit flags (1 (local player) + 2 (other players) + 4 (npcs) + 8 (particles from removed objects) + 0x10 (weapon showimgs) + 0x20 (daynight effect), or 0x3f for everything), pixelwidth and pixelheight; this is making a screenshot at the player position, see makescreenshot2() if you want to change the offset
   matrixcreate(str, str) - returns string
   matrixcreatefromeuler(str) - returns string
   matrixmulpoint(str, str) - returns string
@@ -290,16 +323,21 @@ Global:
   opengraalurl(str)
   openurl(str)
   openurl2(str, int, int)
-  play(str)
-  play2(str, float, float, float)
-  play3d(str, bool, str, str)
+  play(str) - plays a sound file at the player position
+  play2(str, float, float, float) - parameters are sound file, x, y and volume (0..1)
+  play3d(str, bool, str, str) - filename, looped, position and velocity (of format {x,y,z})
   playlooped(str)
-  playlooped2(str, float, float, float)
+  playlooped2(str, float, float, float) - plays a sound file looped at x, y and volume (0..1)
   popdialog()
+  popdialog()
+  preloadanimation(str) - loads graphics used by an animation and keeps them in memory until a script calls freeAllResources()
+  preloadimage(str, bool) - forces loading of an image and, if the second parameter is true, keeps it in memory until a script calls freeAllResources()
+  pushdialog(obj)
   pushdialog(obj)
   putleaps(int, float, float)
   radtodeg(float) - returns float
   randomstring(str) - returns string
+  removeescapesfromfilename(str) - returns string
   removetiledefs(str)
   replaceani(str, str)
   requestfiledeletion(str)
@@ -308,7 +346,10 @@ Global:
   requesthttp(str, int, str) - returns object
   requesttext(str, str)
   requesturl(str) - returns object
+  requesturlasgamefile(str, str, int, bool) - returns object - works similar to redirects in the folder configuration: you can use this function to download files from the web and treat them like files downloaded from the server; parameters are the url, the download filename, modification time (0 for current), and if the you want to force download (true/false), otherwise it will only download if the web server file changed
   resetfocus()
+  resetimageanimation(str) - sets an image animation (gif or mng) back to the first frame
+  resolvehost(str) - returns string - DNS lookup: resolves the host name (e.g. graalonline.com) to an ipv4 like 1.2.3.4
   rotationadd(str, str) - returns string
   rotationaddeuler(str, str) - returns string
   rotationfromeuler(str) - returns string
@@ -329,16 +370,14 @@ Global:
   setani(str, str)
   setbeltcolor(str)
   setcoatcolor(str)
-  setcontentcontrol(obj)
+  setcontentcontrol(obj) - replaces the main GUI control
+  setcontentcontrol(obj) - replaces the main GUI control
   setcursor2(str)
   seteffect(float, float, float, float)
   setfocus(float, float)
-  setfogcolors(obj)
   setgender(str)
   sethead(str)
-  setinteriorrendermode(int)
   setletters(str)
-  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
   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
   setmusicvolume(float, float)
   setplayerdir(str)
@@ -346,37 +385,40 @@ Global:
   setshoecolor(str)
   setshootparams(str)
   setskincolor(str)
-  setskybandcolors(obj)
-  setskybandsizes(obj)
   setsleevecolor(str)
+  setsoundpitch(str, float) - sets the pitch of a sound effect, parameters are filename and pitch, good for looping car sounds, default is 1, good values are between 0.5 and 1.5
+  setsoundpitchbynote(str, str, str) - sets the pitch of a sound depending on base note (e.g. cn1) and the note you want to hear (e.g. an1), notes are an0, as1, bn0, cn0, cs0, dn0, ds0, en0, fn0, fs1, gn0, fs1, an1 etc.
   setspritesimage(str)
   setstatusimage(str)
-  setsuncolors(obj)
+  setstreamingmode(str) - returns boolean
   setsword(str, int)
-  setterrainrendermode(int)
   showstats(int)
   spyfire(int, int)
   startrecordvideo() - returns boolean
   stopmidi() - same as stopmusic(), kept for compatibility
   stopmusic()
   stoprecordvideo() - returns boolean
-  stopsound(str)
+  stopsound(str) - stops a sound effect
+  stopsounds(bool) - stops all sound effects, as parameter specify if also looping sounds should be stopped
   strcmp(str, str) - returns integer
   strequals(str, str) - returns boolean
+  supportsopenglshader() - returns boolean
+  switchtodirectx()
   switchtoopengl()
-  synctimeofday(float, float)
   takeplayercarry()
   takeplayerhorse()
   testplayer(float, float) - returns integer
   trace(str) - same as echo()
   triggeraction(float, float, str, params...)
   triggerserver(str, str)
-  update3dterrain(float, float, float, float)
   updateboard(int, int, int, int)
+  updateratingdeviation(float, float) - returns float - old deviation, time of last spar, returns new deviation
+  updateratings(obj) - returns object - updates an array of {rating1,ratingdeviation1, rating2,ratingdeviation2, ...}, init them at 1500 and 350
   updateterrain()
-  updatevisibledistance()
-  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
+  uploadfile(str) - uploads a file, you must provide the full path provided by an 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
   uppercase(str) - returns string
+  urldecode(str) - returns string
+  urlencode(str) - returns string
   vectoradd(str, str) - returns string
   vectorcross(str, str) - returns string
   vectordist(str, str) - returns float
@@ -427,98 +469,81 @@ TGraalVar:
   loadstring(str) - loads the content of a file into the variable
   loadvars(str) - loads the variables from a file where each line has the format varname=value
   loadvarsfromarray(obj) - loads the variables from a string list of the format varname=value
-  loadxml(str)
-  loadxmlfromstring(str)
+  loadxml(str) - loads an .xml file into the variable (array members with names and text attribute)
+  loadxmlfromstring(str) - loads an xml formated string into the variable (array members with names and text attribute)
   objecttype() - returns string - returns the object type, which can be TGraalVar, TProjectile etc.
   savelines(str, int) - saves the array line by line into a file, the second parameter is the save mode (0 - overwrite, 1 - append)
   savestring(str, int) - saves the value as string into a file, the second parameter is the save mode (0 - overwrite, 1 - append)
   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)
   savevarstoarray(bool) - returns object - saves the subvars in the format varname=value into an array, you must specify if it should be sorted
-  savexml(str, int)
-  savexmltostring() - returns string
+  savexml(str, int) - saves the variable (array members with names) in xml format to a file, the second parameter is the save mode (0 - overwrite, 1 - append)
+  savexmltostring() - returns string - saves the variable (array members with names) to an xml formated string
   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
   settimer(float) - invokes an onTimeout event after the specified time, similar to 'timeout=value'
   sortascending() - sorts the array in ascending order (smallest value first)
   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 "string", otherwise it is sorted by floating point value
   sortdescending() - sorts the array in descending order (highest value first)
+  split(str) - returns object - for ActionScript compatibility only: use tokenize() instead
   subarray2(int, int, int, int) - returns object - extracts a two-dimensional array, specify startpos1, length1, startpos2, length2
   timershow() - lets an npc show the current timeout variable, deprecated
   trigger(str, params...) - invokes an event on the object (onEventname) with the specified event name and parameters, doesn't interrupt the current script
 
-  ActionMap (TGraalVar):
-    bind(str, str, str)
-    getbinding(str) - returns string
-    getcommand(str, str) - returns string
-    load() - returns boolean
-    pop()
-    push()
-    save()
-    unbind(str, str)
-
-  DTSAniThread (TGraalVar):
-    aniindex - integer (read only)
-    atend - boolean (read only)
-    attack - boolean
-    endpos - float
-    hold - boolean
-    position - float
-    sequence - string
-    startpos - float
-    state - string
-    timescale - float
-    transtitiontime - float
-    isintransition() - returns boolean
-    play()
-
-  GameMovementInterpolate (TGraalVar):
-    rigid - object (read only)
-    applyimpulse(str, str)
-
-    GameMovementRigid (GameMovementInterpolate):
-      addrigidmove(str, str) - adds torque and force vector
-
-  GameMovementList (TGraalVar):
-    finishmoves()
-    move3d(str, float, int)
-
-  GameShape (TGraalVar):
-    pixelshader - string
-    vertexshader - string
-
-    GameShapeDIF (GameShape):
-      activatelight(str)
-      deactivatelight(str)
-
-    GameShapeDTS (GameShape):
-      materiallist - object (read only)
-      materials - object (read only)
-      forceanimations() - starts to animate the object to make sure the animations are the wished start position
-      getanimation(int) - returns object
-      listnodes() - returns object
-      pauseanimation(int)
-      playanimation(int, str, int) - returns object - specify animation slot, animation name and flags (1 - hold, 2 - atend, 4 - attackanimation)
-      playanimation2(int, str, int, float, float, float, float) - returns object - specify animation slot, animation name, flags, startpos, endpos, timescale, transitiontime
-      stopanimation(int)
-
-    GameShapeFT (GameShape):
-      levels - integer
-      seed - integer
+  GuiAccordionEntry (TGraalVar):
+    id - integer
+    image - string
 
   GuiControl (TGraalVar):
+    onAction() event - an action happened (e.g. button pressed)
+    onAdd() event - the control has been added as child to another control
+    onAnimationFinished(str) event - all animations finished, parameter is the last transition type
+    onDialogPop() event - the control is no longer the dialog control (popDialog())
+    onDialogPush() event - the control is now the dialog control (pushDialog())
+    onDropFiles(int, int, obj) event - files dropped from explorer/finder to the control (acceptdropfiles must be true): x, y, filelist
+    onHide() event - the control is no longer visible on the screen
+    onKeyDown(int, str, int) event - a key has been pressed: keycode, keytext, scancode
+    onKeyUp(int, str, int) event - a key has been released: keycode, keytext, scancode
+    onMouseDown(int, int, int, int) event - mouse click: key modifiers, mouse x and y, click count
+    onMouseDragged(int, int, int, int) event - mouse moved while holding the mouse button down: key modifiers, mouse x and y, click count
+    onMouseEnter(int, int, int, int) event - mouse enters the area of the control: key modifiers, mouse x and y, click count
+    onMouseLeave(int, int, int, int) event - mouse leaves the are of the control: key modifiers, mouse x and y, click count
+    onMouseMove(int, int, int, int) event - mouse moved: key modifiers, mouse x and y, click count
+    onMouseUp(int, int, int, int) event - mouse button released: key modifiers, mouse x and y, click count
+    onMouseWheelDown(int, int, int, int) event - mouse wheel scrolled down: key modifiers, mouse x and y, click count
+    onMouseWheelUp(int, int, int, int) event - mouse wheel scrolled up: key modifiers, mouse x and y, click count
+    onMove(int, int) event - the control has been moved to x, y
+    onRemove() event - the control has been removed from its parent
+    onResize(int, int) event - the control has been resized to width, height
+    onRightMouseDown(int, int, int, int) event - right mouse click: key modifiers, mouse x and y, click count
+    onRightMouseDragged(int, int, int, int) event - mouse moved while holding the right mouse button down: key modifiers, mouse x and y, click count
+    onRightMouseUp(int, int, int, int) event - right mouse button released: key modifiers, mouse x and y, click count
+    onShow() event - the control becomes actually visible on the screen
+    onSleep() event - the control is not part of the screen anymore
+    onStartDrag() event - the user is moving the control
+    onStopDrag(int, int, int, int) event - stopped moving a control: key modifiers, mouse x and y, click count
+    onStyleChanges() event - the GUI style has changed 
+    onWake() event - the control has been added to the screen
     acceptdropfiles - boolean
     active - boolean
     alpha - float
+    areaclickpriority - integer - for iPhone/Android: 2 means you can click it even if not clicking directly on it (buttons), 1 means that nearby buttons are ignored (text field), 0 means a click is only received if you click directly on it and there are no other area-click controls near
     awake - boolean (read only)
+    bitmapcache - boolean - caches the control and all its sub-controls in a bitmap buffer to speed up drawing when there are a lot of small graphics which don't change often
     blue - float
+    bounds - string - array of {x,y,width,height}, combination of position and extent
     canmove - boolean
     canresize - boolean
     clientextent - string
     clientheight - integer
     clientwidth - integer
+    clipchildren - boolean - by default true; specifies if child controls are clipped to their bounds (text or graphics outside of the bounds will not be shown)
     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
+    cliptobounds - boolean - by default true; specifies if the control should be clipped (might be usefull for GuiShowImgCtrl to disable this); this is ignored if parent.clipchildren is already false
     color - string
+    cursor - string - sets the cursor which is displayed when the mouse hovers over this control, currently supports default, hand/pointer, text, crosshair, drag, col-resize, row-resize, wait, progress, help (also depends on the system)
     editing - boolean
     extent - string - width and height of the control
+    fastchildrender - boolean - optimized OpenGL rendering of sub-GuiBitmapCtrls: they must be not tiled, no child-controls, no colors, bitmaprectangle is not supported
+    firstresponder - object - the sub-control which receives keyboard input
     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))
     flickering - boolean - lets the control automatically show and hide itself in flickertime intervals
     flickertime - float - says in what interval the control is shown and hidden, in seconds; works only in combination with flickering=true
@@ -527,9 +552,11 @@ TGraalVar:
     hint - string - text which is displayed when the user moves the mouse over the control
     hinttime - float - says after how much time of not moving the mouse the hint should appear
     horizsizing - string - specifies the horizontal resizing behaviour when the parent control is resized: right, width, left, center or relative
-    layer - integer (read only)
+    isinanimation - boolean
+    isininoutanimation - boolean
+    lockmousedown - boolean - if you click on the control it locks the mouse to this control until released, like a button
     minextent - string - minimum width and height for the control which should be enforced
-    minsize - string - the same like "minExtent"
+    minsize - string - the same as "minExtent"
     mode - integer - the control drawing mode (0 - add, 1 - transparent, 2 - subtract, 3 - daynight)
     parent - object (read only)
     position - string
@@ -537,6 +564,8 @@ TGraalVar:
     red - float
     resizeheight - boolean
     resizewidth - boolean
+    rotation - float
+    rotationcenter - string - the current rotation center (default {0,0})
     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
     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
     showhint - boolean - whether the hint should be shown when the user moves the mouse over the control
@@ -550,27 +579,70 @@ TGraalVar:
     addcontrol(obj)
     bringtofront()
     clearcontrols()
+    createanimation() - returns object - creates an animation object which can be used to animate the position, rotation or color of the control
     destroy()
+    findcontrol(str) - returns object - finds the control at the specified point {x,y}, e.g. for mouse operations
     getparent() - returns object
-    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
+    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
     hide()
     isactuallyvisible() - returns boolean
     isfirstresponder() - returns boolean
-    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)
+    ismouselocked(int) - returns boolean - checks wether the specified mouse (usually 0) has been locked to the control by mouseLock()
+    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)
     makefirstresponder(bool)
+    mouselock(int) - if you call this, and the mouse leaves the control (onMouseLeave) then you will continue getting onMouseDragged events and you will get an onMouseUp event even when the mouse is currently not in the GUI control rectangle; some GUI controls call this automatically when clicking on the control; parameter is the mouse id, which is usually 0 (fifth parameter of mouse events)
+    mouseunlock(int) - unlocks the mouse from the control, you will only get events when the mouse is inside the GUI control; see mouseLock() for more information
+    mouseunlockall() - unlocks all mouses (multitouch), see mouseLock() for more information
     pushtoback()
+    repaint() - forces repaint of the whole control (only useful for external windows)
     resize(int, int, int, int)
     show()
     showtop() - calls show(), tabfirst() and bringtofront()
+    sortcontrols() - sorts the sub-controls depending on their y-coordinate
     startdrag()
+    stopanimations() - stops all previously created animations
+    stopinoutanimations() - stops all animations which move the control in or out of the screen
     tabfirst() - returns object
 
-    EditManager (GuiControl):
+    GuiAnimationCtrl (GuiControl):
+      onAnimationEnd(int) event - finished moving: new entry index
+      onAnimationStart(int, int) event - started moving: current entry index, destination entry index
+      animationtime - float
+      selectedrow - integer
+      getselectedrow() - returns integer - row index
+      rowcount() - returns integer
+      setselectedrow(int)
+
+      GuiAccordionCtrl (GuiAnimationCtrl):
+        backgroundimage - string
+        addrow(int) - returns object - parameter is id, returns the added row
+        clearrows()
+        insertrow(int, int) - returns object - parameters are the insert position and id, returns the inserted row
+        removerow(int)
+        removerowbyid(int)
+
+      GuiSlideShowCtrl (GuiAnimationCtrl):
+        isendless - boolean
+        overlayimage - string
+        scrollonvisible - boolean - animates the slides when the control becomes visible
+        addrow(int) - returns object - parameter is id, returns the added row
+        clearrows()
+        insertrow(int, int) - returns object - parameters are the insert position and id, returns the inserted row
+        removerow(int)
+        removerowbyid(int)
 
     GuiArrayCtrl (GuiControl):
+      onOpenMenu(int, int, int, int) event - right click on an entry: column, row, mouse x and y
+      onSelect(int, int) event - an entry has been selected: column and row
       allowmultipleselections - boolean
 
       GuiTextListCtrl (GuiArrayCtrl):
+        onDblClick(int, str, int) event - double click on a list entry: id, text, row
+        onDeleteKey(int, str, int) event - delete key pressed for an entry: id, text, row
+        onIconResized(int, int) event - the size of the icons has been changed: new width and height
+        onMouseOverCell(int, str, int) event - the mouse is hovering over a list entry: id, text, row
+        onOpenMenu(int, str, int) event - right-click on a list entry: id, text, row
+        onSelect(int, str, int) event - a list entry has been selected: id, text, row
         clipcolumntext - boolean
         columns - string - of format "0 16", offset of the tabulators
         enumerate - boolean
@@ -580,8 +652,10 @@ TGraalVar:
         iconwidth - integer (read only)
         resizecell - boolean
         selected - object (read only)
+        selectedid - integer
+        selectedrow - integer
         sortcolumn - integer
-        sortmode - string
+        sortmode - string - either "value", "name" or "extension"
         sortorder - string
         addrow(int, str) - returns object - the added row
         clearrows()
@@ -608,11 +682,20 @@ TGraalVar:
         setrowactivebyid(int, bool)
         setrowbyid(int, str)
         setselectedbyid(int)
+        setselectedbyids(str) - set an array of selected row ids; requires allowmultipleselections=true
         setselectedbytext(str)
         setselectedrow(int)
+        setselectedrows(str) - set an array of selected row indices; requires allowmultipleselections=true
         sort()
 
       GuiTreeViewCtrl (GuiArrayCtrl):
+        onDblClick(obj, str, str) event - double-click on a node: node object, slash-path, dot-path
+        onExpand(obj, str, str) event - a node is expanding: node object, slash-path, dot-path
+        onFold(obj, str, str) event - a node is folded: node object: slash-path, dot-path
+        onIconResized(int, int) event - the size of the icons has been changed: new width and height
+        onMouseOverCell(obj, str, str) event - the mouse is hovering over a node: node object, slash-path, dot-path
+        onOpenMenu(obj, str, str) event - right click on a node: node object, slash-path, dot-path
+        onSelect(obj, str, str) event - a node is selected: node object, slash-path, dot-path
         boxwidth - integer
         clipcolumntext - boolean
         columns - string - of format "0 16", offset of the tabulators
@@ -635,7 +718,7 @@ TGraalVar:
         profile - object
         selectedimage - integer
         sortgroup - integer
-        sortmode - string
+        sortmode - string - either "value", "name" or "extension"
         sortorder - string
         sortvalue - integer
         statuswidth - integer
@@ -664,24 +747,15 @@ TGraalVar:
     GuiBitmapBorderCtrl (GuiControl):
       tile - boolean
 
-    GuiBitmapButtonCtrl (GuiControl):
-      mouseoverbitmap - string
-      normalbitmap - string
-      pressedbitmap - string
-      text - string
-      setbitmap(str, int)
-
     GuiBitmapCtrl (GuiControl):
       bitmap - string
+      bitmaprectangle - string - by default the full bitmap is drawn: set this to {x,y,width,height} to only draw some part of the image
+      fullbitmap - boolean - if bitmaprectangle has been set then this is false; set this to true to unset the bitmaprectangle
       tile - boolean - specifies if the bitmap should be repeated (true) or stretched (false)
       wrap - boolean - same as 'tile', kept for compatibility
       setbitmap(str)
       setvalue(int, int) - sets the offset of the image (horizontal and vertical)
 
-      GuiMapOverviewCtrl (GuiBitmapCtrl):
-        mapalpha - float
-        pointsize - float
-
     GuiBrowserCtrl (GuiControl):
       url - string
 
@@ -691,9 +765,14 @@ TGraalVar:
       groupnum - integer
       text - string
       gettext() - returns string
-      performclick()
       settext(str)
 
+      GuiBitmapButtonCtrl (GuiButtonBaseCtrl):
+        mouseoverbitmap - string
+        normalbitmap - string
+        pressedbitmap - string
+        setbitmap(str, int) - parameters are the bitmap and index (0, 1, 2 for normal, mouse over and pressed state)
+
       GuiButtonCtrl (GuiButtonBaseCtrl):
         stylesection - string
         seticonsize(int, int)
@@ -703,6 +782,8 @@ TGraalVar:
         GuiRadioCtrl (GuiCheckBoxCtrl):
 
     GuiContextMenuCtrl (GuiControl):
+      onCancel() event - the menu has been closed without selecting an entry
+      onSelect(int, str, int) event - a menu entry has been selected: id, text and row
       clipcolumntext - boolean
       columns - string - of format "0 16", offset of the tabulators
       enumerate - boolean
@@ -716,8 +797,10 @@ TGraalVar:
       rows - object (read only)
       scrollprofile - object
       selected - object (read only)
+      selectedid - integer
+      selectedrow - integer
       sortcolumn - integer
-      sortmode - string
+      sortmode - string - either "value", "name" or "extension"
       sortorder - string
       textprofile - object
       width - integer
@@ -750,45 +833,53 @@ TGraalVar:
       setrowactivebyid(int, bool)
       setrowbyid(int, str)
       setselectedbyid(int)
+      setselectedbyids(str) - set an array of selected row ids; requires allowmultipleselections=true
       setselectedbytext(str)
       setselectedrow(int)
+      setselectedrows(str) - set an array of selected row indices; requires allowmultipleselections=true
       sort()
 
       GuiStartMenuCtrl (GuiContextMenuCtrl):
+        onCancel() event - the menu has been closed without selecting an entry
+        onSelect(int, str, int) event - a menu entry has been selected: id, text and row
+        onTextChanged(str) event - the menu text has been changed
         text - string
         width - integer
         gettext() - returns string
         settext(str)
 
     GuiDrawingPanel (GuiControl):
+      availablefilters - object (read only) - available filters for filterrectangle()
       parth - integer (read only)
       partw - integer (read only)
       partx - integer (read only)
       party - integer (read only)
       clearall()
-      clearrectangle(int, int, int, int)
-      drawimage(int, int, str)
-      drawimagerectangle(int, int, str, int, int, int, int)
-      drawimagestretched(int, int, int, int, str, int, int, int, int)
+      clearrectangle(int, int, int, int) - x, y, width and height
+      drawcurve(int, int, int, int, int, int, float) - draws a curve with profile.fontcolor, parameters are x1,y1,x2,y2,x3,y3,linewidth (the curve goes close to x2,y2 but not through it)
+      drawimage(int, int, str) - x, y, source image
+      drawimagerectangle(int, int, str, int, int, int, int) - destination x and y, source image, source x,y,width and height
+      drawimagestretched(int, int, int, int, str, int, int, int, int) - destination x,y,width and height, source image, source x,y,width and height
+      drawline(int, int, int, int, float) - draws a line with profile.fontcolor, parameters are x1,y1,x2,y2,linewidth
+      drawobject(int, int, obj) - destination x and y, object to draw (e.g. player)
+      drawtext(int, int, str) - draws text with the current profile, parameters are x, y and the text to draw
+      filterrectangle(int, int, int, int, str) - returns boolean - applys a filter (x,y,width,height,filter type), possible filter types are gray, nightgoggle, negative, updown, blackwhite and lesscolors
+      maskimage(int, int, str, str) - draws an image (x,y,filename) on top with a special mask operation (add or multiply)
       saveimage(str)
+      saveimage2(str, int) - saves the drawing panel under the specified filename, second parameter is the bitdepth (24 or 32)
 
     GuiFlash (GuiControl):
       backgroundalpha - float
       downloadwebfiles - boolean
+      flash - object (read only) - gives access to the flash resources
       hideonoverlap - boolean
       loopmovie - boolean
       messageonoverlap - string
       moviename - string
-      requiresactivex - boolean - same as requiresplugin
-      requiresplugin - boolean - only displays the flash file if the flash plugin or activex control could be loaded
-      tryactivex - boolean - same as tryplugin
-      tryplugin - boolean - tries to load the flash plugin or activex control to display the flash file
-      getflashvariable(str) - returns string
       loadmovie(str, bool, float)
       playmovie()
       restartmovie()
       setbackgroundalpha(float)
-      setflashvariable(str, str)
       setlooping(bool)
       stopmovie()
 
@@ -811,13 +902,13 @@ TGraalVar:
       setrowcount(int)
       setrowoffset(int, int)
 
-    GuiGraal3DCtrl (GuiControl):
-
     GuiGraalCtrl (GuiControl):
-
-    GuiInputCtrl (GuiControl):
+      isrendering - boolean - says if the game is rendered, set to false if you want to only show GUI and not the tiles and players
 
     GuiMenuCtrl (GuiControl):
+      onCancel() event - the menu has been closed without selecting a menu entry
+      onIconResized(int, int) event - the size of the icons has been changed: new width and height
+      onSelect(str, int, str, int) event - a menu item has been selected: menu name, selection id, text and row
       iconheight - integer (read only)
       iconwidth - integer (read only)
       addmenu(str) - returns object
@@ -827,35 +918,55 @@ TGraalVar:
       seticonsize(int, int)
 
     GuiMLTextCtrl (GuiControl):
-      allowcolorchars - boolean
+      onCursorLineChanged(int) event - cursor moved: new line number
+      onReflow(int, int) event - the displayed content changed: new visible width and height
+      onRightSelectTag(str) event - right click on: tag id
+      onSelectTag(str) event - the user clicked on a tag or bitmap: tag id
+      onURL(str) event - the user clicked on an url
       allowedtags - string
       alpha - float
+      cursorposition - integer - cursor position in the text
       deniedsound - string
       disallowedtags - string
       htmlcompatibility - boolean
       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
       maxchars - integer
       parsetags - boolean
+      plaintext - string - the text of the control without character escaping
       syntaxhighlighting - boolean
       text - string
       urlbase - string
       wordwrap - boolean
       addtext(str, bool)
+      deselecttext() - deselects any currently selected text
+      findtext(str, int) - returns integer - searches for a sub string in the current text, returns the position if found, otherwise -1; second parameter are flags: 1 (wrap at text end) + 2 (case sensitive)
+      findtextat(str, int, int) - returns integer - searches for a sub string in the current text starting at the specified position, returns the position of the next match if found, otherwise -1; thirdparameter are flags: 1 (wrap at text end) + 2 (case sensitive)
+      getcolumnandlineofposition(int) - returns string - returns {column, line} of the specified position in the text
       getcursorline() - returns integer
       getline(int) - returns string
       getlinecount() - returns integer
       getlines() - returns object - array of lines
+      getselectedlength() - returns integer - returns the length of the current selection, -1 if there is none
+      getselectedposition() - returns integer - returns the position of the current selection, -1 if there is none
       gettext() - returns string
-      reflow()
+      reflow() - calculates the position of the text elements on the screen, this is automatically done before rendering
+      replacetext(str, str, int) - returns integer - parameters are old text and new text; replaces all occurences of old text with new text, returns how many replacements were done; thirdparameter are flags: 2 (case sensitive)
       scrolltobottom()
+      scrolltoline(int)
+      scrolltoposition(int)
       scrolltotag(str)
       scrolltotop()
+      selecttext(int, int) - returns boolean - parameters are position and length of text to select, returns if it successfully selected it
+      setcursorcolumnandline(int, int)
       setlines(obj)
       settext(str)
+      trimhorizontally() - when you only have centered text then this is removing the space on the left and right side
 
       GuiMLTextEditCtrl (GuiMLTextCtrl):
         autoindenting - boolean - when pressing the return key, then it's automatically inserting the same number of spaces in front of the new line as in the previous line
+        showcursor - boolean
         tabspaces - integer - when the user presses the tab key then this number of spaces are inserted, by default the tab key is ignored
+        undostacksize - integer - number of undo operations (default 16)
 
         GuiPMEditCtrl (GuiMLTextEditCtrl):
           clear()
@@ -870,20 +981,11 @@ TGraalVar:
       GuiPMHistoryCtrl (GuiMLTextCtrl):
         showhistory(obj)
 
-    GuiPlayerView (GuiControl):
-      ambientcolor - string
-      cameraz - float
-      lightcolor - string
-      lightdirection - string
-      modelrotx - float
-      modelrotz - float
-      shape - string
-      shapeobject - object (read only)
-
     GuiProgressCtrl (GuiControl):
       progress - float
 
     GuiScrollCtrl (GuiControl):
+      onScrolled(int, int, int, int) event - visible area scrolled: new x and y, delta x and y
       childmargin - string
       constantthumbheight - boolean
       hscrollbar - string
@@ -898,27 +1000,12 @@ TGraalVar:
       scrolltobottom() - scrolls to the button, simply calls scrollto(0, 0x7fffffff)
       scrolltotop() - scrolls to the top, simply calls scrollto(0, 0)
 
-    GuiShapeNameHud (GuiControl):
-      alignbottom - boolean
-      chatprofile - string
-      damagealignbottom - boolean
-      damageoffset - string
-      damagetimeout - float
-      distancefade - float
-      fillcolor - string
-      framecolor - string
-      maxdistance - float
-      showfill - boolean
-      showframe - boolean
-      useshapesize - boolean
-      verticaldamageoffset - float
-      verticaloffset - float
-
     GuiShowImgCtrl (GuiControl):
+      actor - object (read only)
       alpha - float
+      angle - float - particle movement angle
       ani - string
       ani - string
-      attachnode - string
       attachoffset - string
       attachtoowner - boolean
       blue - float
@@ -927,46 +1014,66 @@ TGraalVar:
       dir - integer
       dir - integer
       emitter - object (read only)
-      eulerrotation - string
       flashfile - string
       font - string
       green - float
+      height - float
       image - string
       imageindex - integer (read only)
-      is3dlight - boolean
       layer - integer
       layer - integer
+      lifetime - float - particle lifetime
       mode - integer - the image drawing mode (0 - add, 1 - transparent, 2 - subtract, 3 - daynight)
+      movementvector - string - particle movement vector (angle + zangle + speed)
       offsetx - integer
       offsety - integer
+      parth - integer
+      partw - integer
+      partx - integer
+      party - integer
       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.
       polygon - object
       position - string
       red - float
       rotation - float
-      shape - string
-      shapeobject - object (read only)
+      rotationcenter - string - the current rotation center (only works when useowncenter=true)
+      shadowcolor - string
+      shadowoffset - string
+      sound - string - particle sound
+      speed - float - particle movement speed
       spin - float
       stretchx - float
       stretchy - float
       style - string
       text - string
+      textshadow - boolean
+      uniqueparticle - boolean - says if each particle should store it's own data (good for text emitters)
+      useowncenter - boolean - by default the showimg is rotated around the image center, set this to true and set rotationcenter for custom rotations
+      width - float
       x - float
       y - float
       z - float
+      zangle - float - particle movement zangle
       zoom - float
 
     GuiSliderCtrl (GuiControl):
+      onAction(float) event - the slider value has been changed (by script or user): new slider value
+      onReleaseSlider(float) event - the user has finishzed moving the slider: new slider value
       range - string
       ticks - integer
       value - float
 
     GuiStretchCtrl (GuiControl):
-      clientextent - integer
+      clientextent - string
       clientheight - integer
       clientwidth - integer
 
     GuiTabCtrl (GuiControl):
+      onDeselect(int, str, int) event - a tab is no longer selected: id, text, row
+      onIconResized(int, int) event - the size of the icons has been changed: new width and height
+      onMouseOverCell(int, str, int) event - the mouse is hovering over a tab: id, text, row
+      onOpenMenu(int, int, int) event - the user has clicked with the right mouse button on an entry: row, mouse x and y
+      onSelect(int, str, int) event - a tab has been selected: id, text, row
       iconheight - integer (read only)
       iconwidth - integer (read only)
       leveling - integer
@@ -1000,11 +1107,15 @@ TGraalVar:
     GuiTaskbar (GuiControl):
 
     GuiTextCtrl (GuiControl):
+      onTextChanged(str) event - text has been changed
+      stylesection - string - if set to Clock then it will use Taskbar.Clock TextColour from the gui style
       text - string
       gettext() - returns string
       settext(str)
 
       GuiPopUpEditCtrl (GuiTextCtrl):
+        onCancel() event - the menu has been closed without selecting an entry
+        onSelect(int, str, int) event - a menu entry has been selected: id, text and row
         clipcolumntext - boolean
         columns - string - of format "0 16", offset of the tabulators
         enumerate - boolean
@@ -1019,8 +1130,10 @@ TGraalVar:
         rows - object (read only)
         scrollprofile - object
         selected - object (read only)
+        selectedid - integer
+        selectedrow - integer
         sortcolumn - integer
-        sortmode - string
+        sortmode - string - either "value", "name" or "extension"
         sortorder - string
         textprofile - object
         width - integer
@@ -1060,12 +1173,16 @@ TGraalVar:
         setrowbyid(int, str)
         setselected(int)
         setselectedbyid(int)
+        setselectedbyids(str) - set an array of selected row ids; requires allowmultipleselections=true
         setselectedbytext(str)
         setselectedbytext(str)
         setselectedrow(int)
+        setselectedrows(str) - set an array of selected row indices; requires allowmultipleselections=true
         sort()
 
       GuiPopUpMenuCtrl (GuiTextCtrl):
+        onCancel() event - the menu has been closed without selecting an entry
+        onSelect(int, str, int) event - a menu entry has been selected: id, text and row
         clipcolumntext - boolean
         columns - string - of format "0 16", offset of the tabulators
         enumerate - boolean
@@ -1080,8 +1197,10 @@ TGraalVar:
         rows - object (read only)
         scrollprofile - object
         selected - object (read only)
+        selectedid - integer
+        selectedrow - integer
         sortcolumn - integer
-        sortmode - string
+        sortmode - string - either "value", "name" or "extension"
         sortorder - string
         textprofile - object
         width - integer
@@ -1121,15 +1240,21 @@ TGraalVar:
         setrowbyid(int, str)
         setselected(int)
         setselectedbyid(int)
+        setselectedbyids(str) - set an array of selected row ids; requires allowmultipleselections=true
         setselectedbytext(str)
         setselectedbytext(str)
         setselectedrow(int)
+        setselectedrows(str) - set an array of selected row indices; requires allowmultipleselections=true
         sort()
 
       GuiTextEditCtrl (GuiTextCtrl):
+        onAction(str) event - a text has been entered (return key pressed)
+        onTabComplete(bool) event - the tab key has been pressed (with or without shift key)
         deniedsound - string
         historysize - integer
+        inputtype - string - either password or default, on mobile devices also email,url and numbers
         password - boolean
+        showcursor - boolean
         tabcomplete - boolean
         setselection(int, int)
         undo()
@@ -1148,134 +1273,22 @@ TGraalVar:
           value - float
 
       GuiWindowCtrl (GuiTextCtrl):
+        onCloseQuery() event - the player clicked on the close button and closequery=true
+        onTextChanged(str) event - the window title has been changed
         canclose - boolean
         canmaximize - boolean
         canminimize - boolean
         clientrelative - boolean - by default false; if enabled then sub-controls are positioned automatically to not overlap the header or the borders; use clientwidth and clientheight to get the available space for sub-controls
         closequery - boolean
         destroyonhide - boolean
+        dockable - boolean
         extent - string
+        externalwindow - object (read only) - the external window object, can be used to manipulate the OS window
+        isexternal - boolean
         maximized - boolean
         minimized - boolean
         tile - boolean
-        isactivewindow() - returns boolean
-
-    TerrainEditor (GuiControl):
-      adjustheightmousescale - float
-      adjustheightval - float
-      borderfillcolor - string
-      borderframecolor - string
-      borderheight - float
-      borderlinemode - boolean
-      brushpos - string
-      enablesoftbrushes - boolean
-      isdirty - boolean
-      ismissiondirty - boolean
-      materialgroup - integer
-      paintmaterial - string
-      processusesbrush - boolean
-      renderborder - boolean
-      rendervertexselection - boolean
-      scaleval - float
-      selectionhidden - boolean
-      setheightval - float
-      smoothfactor - float
-      softselectdefaultfilter - string
-      softselectfilter - string
-      softselectradius - float
-      attachterrain(str)
-      buildmaterialmap()
-      clearmodifiedflags()
-      clearselection()
-      getactionname(int) - returns string
-      getbrushpos() - returns string
-      getcurrentaction() - returns string
-      getnumactions() - returns integer
-      getnumtextures() - returns integer
-      getterrainmaterials() - returns object
-      gettexturename(int) - returns string
-      markemptysquares()
-      mirrorterrain(int)
-      popbasematerialinfo()
-      processaction(str)
-      pushbasematerialinfo()
-      redo()
-      resetselweights(bool)
-      setaction(str)
-      setbrushpos(str)
-      setbrushsize(int, int)
-      setbrushtype(str)
-      setlonebasematerial(str)
-      setterrainmaterials(str)
-      undo()
-
-    WorldEditor (GuiControl):
-      automaticsync - boolean
-      axisgizmoactive - boolean
-      axisgizmomaxscreenlen - integer
-      boundingboxcollision - boolean
-      defaulthandle - string
-      dragrectcolor - string
-      droptype - string
-      faceselectcolor - string
-      gridcolor - string
-      gridsize - string
-      isdirty - boolean
-      lockedhandle - string
-      maxscalefactor - float
-      minscalefactor - float
-      mousemovescale - float
-      mouserotatescale - float
-      mousescalescale - float
-      namedistancefade - float
-      namemaxdistance - float
-      objectsuseboxcenter - boolean
-      objecttextcolor - string
-      objmouseovercolor - string
-      objmouseoverselectcolor - string
-      objselectcolor - string
-      objtextformat - string
-      planarmovement - boolean
-      planedim - float
-      popupbackgroundcolor - string
-      popuptextcolor - string
-      projectdistance - float
-      rendernav - boolean
-      renderobjhandle - boolean
-      renderobjtext - boolean
-      renderplane - boolean
-      renderplanehashes - boolean
-      renderpopupbackground - boolean
-      renderselectionbox - boolean
-      rotationsnap - float
-      selecthandle - string
-      selectionboxcolor - string
-      selectionlocked - boolean
-      showmousepopupinfo - boolean
-      snaprotations - boolean
-      snaptogrid - boolean
-      toggleignorelist - boolean
-      undolimit - integer
-      addundostate()
-      clearignorelist()
-      clearselection()
-      deleteselection()
-      dropselection()
-      getmode() - returns string
-      getselectedobject(int) - returns object
-      getselectioncentroid() - returns string
-      getselectionsize() - returns integer
-      hideselection(bool)
-      ignoreobjclass(str)
-      lightselection()
-      lockselection(bool)
-      redo()
-      reloadselection()
-      selectobject(obj)
-      setmode(str)
-      syncselection()
-      undo()
-      unselectobject(obj)
+        isactivewindow() - returns boolean - checks if the window is active (the top window)
 
   GuiControlProfile (TGraalVar):
     align - string
@@ -1288,6 +1301,7 @@ TGraalVar:
     bordercolorhl - string
     bordercolorna - string
     borderthickness - integer
+    boxextent - string - the size of checkboxes, for GuiCheckBoxCtrl
     cankeyfocus - boolean
     cursorcolor - string
     fillcolor - string
@@ -1303,27 +1317,39 @@ TGraalVar:
     fontcolorsel - string
     fontsize - integer
     fontstyle - string
+    fontstylecontrolwords - string
+    fontstyleidentifiers - string
+    fontstylenumbers - string
+    fontstylestrings - string
     fonttype - string
+    gradientcolor - string
     justify - string - the same like "align"
     linespacing - integer
     modal - boolean
     mouseoverselected - boolean
-    numbersonly - boolean
+    numbersonly - boolean - only allow entering of numbers into a GuiTextEditCtrl
     opaque - boolean
+    overridestylefont - boolean - set to true of you want to replace the GUI style font attributes
     returntab - boolean
     shadowcolor - string
     shadowoffset - string
     soundbuttondown - string
     soundbuttonover - string
     tab - boolean
+    textgradient - boolean
     textoffset - string
     textshadow - boolean
     transparency - float
-    gettextheight() - returns integer
-    gettextwidth(str) - returns integer
+    gettextheight() - returns integer - get the text height when displayed with the profile font
+    gettextwidth(str) - returns integer - get the width of text when displayed with the profile font
+    preloadfont() - preloads the profile font and keeps it in memory until a script calls freeAllResources()
 
   GuiCursor (TGraalVar):
 
+  GuiSlideShowEntry (TGraalVar):
+    id - integer
+    image - string
+
   GuiTabCtrlEntry (TGraalVar):
     hint - string
     id - integer
@@ -1387,20 +1413,35 @@ TGraalVar:
     select()
 
   MovieClip (TGraalVar):
+    onEnterFrame() event - frame tick
+    onInitFrame() event - the movie clip switched to a new frame
+    onKeyDown() event - a key has been pressed
+    onKeyUp() event - a key has been released
+    onMouseDown() event - mouse click
+    onMouseMove() event - mouse moved
+    onMouseUp() event - mouse button released
+    onPress() event - mouse click on a button clip
+    onRelease() event - mouse button released on a button clip
     _level0 - object (read only)
+    _name - string (read only)
     _parent - object (read only)
     _root - object (read only)
+    _rotation - float
     _visible - boolean
     _x - float
     _xmouse - float (read only)
+    _xscale - float
     _y - float
     _ymouse - float (read only)
+    _yscale - float
     alpha - float
     blue - float
     frame - integer
     framecount - integer (read only)
     green - float
     height - float (read only)
+    key - object (read only)
+    layerdepths - object (read only)
     layernames - object (read only)
     looping - boolean
     math - object (read only)
@@ -1408,29 +1449,42 @@ TGraalVar:
     objectnames - object (read only)
     playing - boolean
     red - float
+    stage - object (read only)
     width - float (read only)
     attachmovie(params...) - returns object - parameters are the movie clip to copy, the name of the new clip, and the layer
+    clearinterval(obj)
     createemptymovieclip(str, int) - returns object - parameters are the the name of the new clip and the layer
     duplicatemovieclip(params...) - returns object
+    getbounds(obj) - returns object
     getbytesloaded() - returns integer
     getbytestotal() - returns integer
     getcolor() - returns string
     getdepth() - returns integer
+    getinstanceatdepth(int) - returns object
     getlayer(str) - returns object
+    getnexthighestdepth() - returns integer
     getproperty(int) - returns string
+    gettimer() - returns integer
+    globaltolocal(obj)
     gotoandplay(params...) - specify the frame name or frame number
     gotoandstop(params...) - specify the frame name or frame number
     hittest(params...) - returns boolean
+    localtoglobal(obj)
     nextframe()
     play()
     prevframe()
     removelayer(str)
     removemovieclip()
     setcolor(str)
+    setinterval(obj, str, int) - returns object
+    setmask(obj)
     setproperty(int, str)
+    startdrag()
     stop()
+    stopdrag()
     swapdepths(str)
     unloadmovie() - same as removeMovieClip()
+    updateafterevent()
 
   MRandomGenerator (TGraalVar):
     seed - integer
@@ -1442,269 +1496,21 @@ TGraalVar:
 
     MRandomR250 (MRandomGenerator):
 
-  SimObject (TGraalVar):
+  Stage (TGraalVar):
+    height - float (read only)
+    width - float (read only)
+    stage(params...) - returns object
 
-    SceneObject (SimObject):
-      eulerrotation - string
-      forwardvector - string
-      objectbox - string (read only)
-      position - string
-      renderposition - string
-      rightvector - string
-      rotation - string
-      scale - string
-      scaledobjectbox - string (read only)
-      transform - string
-      upvector - string
-      worldbox - string (read only)
-      worldboxcenter - string (read only)
-      x - float
-      y - float
-      z - float
-      getforwardvector() - returns string
-      getobjectbox() - returns string
-      getposition() - returns string
-      getrightvector() - returns string
-      getscale() - returns string
-      gettransform() - returns string
-      getupvector() - returns string
-      getworldbox() - returns string
-      getworldboxcenter() - returns string
-      light()
-      setforwardvector(str)
-      setposition(str)
-      setrightvector(str)
-      setscale(str)
-      settransform(str)
-      setupvector(str)
-
-      fxSunLight (SceneObject):
-        animazimuth - boolean
-        animbrightness - boolean
-        animcolour - boolean
-        animelevation - boolean
-        animrotation - boolean
-        animsize - boolean
-        azimuthkeys - string
-        azimuthtime - float
-        blendmode - integer
-        bluekeys - string
-        brightness - float
-        brightnesskeys - string
-        brightnesstime - float
-        colour - string
-        colourtime - float
-        elevationkeys - string
-        elevationtime - float
-        enable - boolean
-        fadetime - float
-        flaresize - float
-        flaretp - boolean
-        greenkeys - string
-        lerpazimuth - boolean
-        lerpbrightness - boolean
-        lerpcolour - boolean
-        lerpelevation - boolean
-        lerprotation - boolean
-        lerpsize - boolean
-        linkflaresize - boolean
-        localflarebitmap - string
-        maxazimuth - float
-        maxbrightness - float
-        maxcolour - string
-        maxelevation - float
-        maxrotation - float
-        maxsize - float
-        minazimuth - float
-        minbrightness - float
-        mincolour - string
-        minelevation - float
-        minrotation - float
-        minsize - float
-        redkeys - string
-        remoteflarebitmap - string
-        rotationkeys - string
-        rotationtime - float
-        singlecolourkeys - boolean
-        sizekeys - string
-        sizetime - float
-        sunazimuth - float
-        sunelevation - float
-        reset()
-
-      GameObject (SceneObject):
-        alpha - float
-        attachedtoobject - object
-        attrobjects - object (read only)
-        chat - string
-        collision - boolean
-        iseditorobject - boolean
-        liquidheight - float (read only)
-        liquidtype - string (read only)
-        movetype - string
-        nick - string - same as nickname
-        nickcolor - string
-        nickname - string
-        position - string
-        scaledshapebox - string (read only)
-        shadow - boolean
-        shape - string
-        shapebox - string (read only)
-        showterrain - boolean
-        skin - string
-        solid - boolean
-        transform - string
-        velocity - string
-        watercoverage - float (read only)
-        checkcollision(str, str) - returns object
-        checkcollisionbybox(str, str, str) - returns object
-        clippolygons(str) - returns object
-        findimg(int) - returns object
-        getcontrollingclient() - returns object
-        getcontrollingobject() - returns object
-        getdropz(str) - returns float
-        getinteriorobject() - returns object
-        getmountedobject(int) - returns object
-        getmountedobjectcount() - returns integer
-        getmountedobjectnode(int) - returns integer
-        getmountnodeobject(int) - returns object
-        getmountposition(int) - returns string
-        getmounttransform(int) - returns string
-        getnodeposition(str) - returns string
-        getnodetransform(str) - returns string
-        getobjectmount() - returns object
-        hideimg(int)
-        hideimgs(int, int)
-        isdrawn() - returns boolean
-        isininterior() - returns boolean
-        ismounted() - returns boolean
-        mountobject(obj, int) - returns boolean
-        setdirection(str)
-        unmount()
-        unmountobject(obj) - returns boolean
-
-        Camera (GameObject):
-          cameramode - string
-          eulerrotation - string
-          followattachedobject - object
-          lookatposition - string
-          lookvector - string
-          updateposition()
-
-        DynamicShapeReplicator (GameObject):
-          aligntoterrain - boolean
-          allowedterrainslope - integer
-          allowoninteriors - boolean
-          allowonstatics - boolean
-          allowonterrain - boolean
-          allowonwater - boolean
-          allowwatersurface - boolean
-          boxmax - string
-          boxmin - string
-          hidereplications - boolean
-          maxgridobjects - integer
-          mingridobjects - integer
-          offsetz - float
-          radius - integer
-          seed - integer
-          shapefiles - string
-          shaperotatemax - string
-          shaperotatemin - string
-          shapescalemax - string
-          shapescalemin - string
-          surfaceexclusionmode - boolean
-          surfacetype - integer
-          terrainalignment - string
-
-          DynamicGrass (DynamicShapeReplicator):
-
-          DynamicGrassReplicator (DynamicShapeReplicator):
-
-      Sky (SceneObject):
-        cloudheight1 - float
-        cloudheight2 - float
-        cloudheight3 - float
-        cloudspeed1 - float
-        cloudspeed2 - float
-        cloudspeed3 - float
-        fogcolor - string
-        fogstorm1 - boolean
-        fogstorm2 - boolean
-        fogstorm3 - boolean
-        fogvolume1 - string
-        fogvolume2 - string
-        fogvolume3 - string
-        fogvolumecolor1 - string
-        fogvolumecolor2 - string
-        fogvolumecolor3 - string
-        materiallist - string
-        norenderbans - boolean
-        renderbottomtexture - boolean
-        skyfadetime - float
-        skysolidcolor - string
-        useskytextures - boolean
-        windeffectprecipitation - boolean
-        windvelocity - string
-        getwindowvelocity() - returns string
-        realfog(bool, float, float, float) - specify if it should show, and max, min and speed values
-        stormclouds(bool, float) - specify if it should show, and the duration
-        stormcloudsshow(bool)
-        stormfog(float, float) - percent and duration of the fog
-        stormfogshow(bool)
-
-      TerrainBlock (SceneObject):
-        repeatterrain - boolean
-        squaresize - integer
-        terrainfile - string
-
-      WaterBlock (SceneObject):
-        density - float
-        depthgradient - float
-        distortgridscale - float
-        distortmag - float
-        distorttime - float
-        envmapintensity - float
-        envmapovertexture - string
-        envmapundertexture - string
-        flowangle - float
-        flowrate - float
-        ignoreterrain - boolean
-        liquidtype - string
-        maxalpha - float
-        minalpha - float
-        removewetedges - boolean
-        shoredepth - float
-        shoretexture - string
-        specularcolor - string
-        specularmasktex - string
-        specularpower - float
-        submergetexture0 - string
-        submergetexture1 - string
-        surfaceopacity - float
-        surfaceparallax - float
-        surfacetexture - string
-        tessshore - float
-        tesssurface - float
-        usedepthmask - boolean
-        viscosity - float
-        wavemagnitude - float
-
-    SimGroup (SimObject):
-      addcontrol(obj)
+  TCallStackEntry (TGraalVar):
+    scriptcallobject - object (read only)
 
-      GameConnection (SimGroup):
-        account - string (read only)
-        camera - object (read only)
-        communityname - string (read only)
-        isobserver - boolean (read only)
-        nick - string (read only)
-        objecttype() - returns string
-        showprofile()
+  TControlBinding (TGraalVar):
+    action - integer (read only)
+    keycode - integer (read only)
+    keytext - string (read only)
+    slot - integer (read only)
 
-    Sun (SimObject):
-      ambient - string
-      color - string
-      direction - string
+  TDoubleArrayVar (TGraalVar):
 
   TDrawableObject (TGraalVar):
     layer - integer (read only)
@@ -1731,7 +1537,7 @@ TGraalVar:
 
       TGaniObject (TLevelObject):
         alpha - float
-        ani - object (read only)
+        ani - object
         aniparams - string (read only)
         anistep - integer (read only)
         attachedtoobject - object (read only)
@@ -1750,11 +1556,13 @@ TGraalVar:
         mode - integer - the object drawing mode (0 - add, 1 - transparent, 2 - subtract, 3 - daynight)
         red - float
         rotation - float
+        rotationcenter - string - the current rotation center (only works when useowncenter=true)
         shield - string
         sprite - integer
         stretchx - float
         stretchy - float
         sword - string
+        useowncenter - boolean - by default the object is rotated around the image center, set this to true and set rotationcenter for custom rotations
         zoom - float
         getimageforsprite(obj) - returns string
         getsprite(str) - returns object
@@ -1765,6 +1573,7 @@ TGraalVar:
         TProjectile (TGaniObject):
           angle - float (read only)
           fromplayer - object (read only)
+          fromplayerid - integer (read only)
           horiz - boolean (read only)
           params - object (read only)
           speed - float (read only)
@@ -1787,6 +1596,7 @@ TGraalVar:
           attachedtoobject - object
           bombs - integer
           chat - string
+          chatoffset - string - set to {deltax,deltay} if you want to change the position of chat and emoticons for bigger characters; chat only uses deltay
           communityname - string (read only)
           darts - integer
           fullhearts - integer (read only)
@@ -1810,16 +1620,17 @@ TGraalVar:
           isignoring - boolean (read only)
           isloggedin - boolean (read only)
           ismale - boolean (read only)
-          ismuted - boolean (read only)
-          ismuting - boolean (read only)
           language - string (read only)
           languagedomain - string (read only)
+          levelname - string (read only) - the name of the level where the player is currently in, even if it has not been loaded yet
           mapicon - object (read only) - of type TDrawingPanel, this is the icon that appears on the mini-map, usually updated by the playerlist script
           maxhp - integer (read only)
           messagebubble - integer (read only)
           mp - integer
           nick - string
+          paused - boolean
           platform - string (read only)
+          playerlisticon - integer (read only)
           playersindex - integer (read only)
           rating - float (read only)
           ratingd - float (read only)
@@ -1838,8 +1649,11 @@ TGraalVar:
           showprofile()
 
           TPlayer (TServerPlayer):
+            alliedguilds - string - list of guilds which don't hurt the player
             ap - integer
             chat - string
+            defaultwalkspeed - float - specifies the speed of the default movement (by default 0.5)
+            diagonalwalkspeed - float - diagonal movement speed factor, default 1.0, set to 0.5^0.5 to make the player move in the same speed diagonally as horizontally and vertically
             freezetime - float
             hearts - float
             horseimg - string
@@ -1850,6 +1664,7 @@ TGraalVar:
             hurted - boolean (read only)
             hurtpower - float (read only)
             isfemale - boolean (read only)
+            isjumping - boolean (read only)
             ismale - boolean (read only)
             isobserver - boolean (read only)
             letters - string
@@ -1858,6 +1673,7 @@ TGraalVar:
             onhorse - boolean (read only)
             online - boolean (read only)
             paused - boolean (read only)
+            playerlisticon - integer
             reading - boolean (read only)
             shieldimg - string - same as 'shield', except that changing this also updates the shieldpower
             sprite - integer
@@ -1865,6 +1681,10 @@ TGraalVar:
             swordimg - string - same as 'sword', except that changing this also updates the swordpower
             weapon - object (read only)
             weapons - object (read only)
+            zoomfactor - float - the zoom factor set by Alt+8/9
+            getnohit(str) - returns integer - checks if the player can be hurt, returns an error code
+            showemoticon(str) - shows an emoticon file
+            showemoticonbykey(int) - shows an emoticon depending on the provided key (VK_A or getascii('a'))
 
           TServerNPC (TServerPlayer):
             actionplayer - integer (read only)
@@ -1916,12 +1736,12 @@ TGraalVar:
             findimg(int) - returns object
             hide()
             hideimg(int)
-            hideimgs(int, int)
+            hideimgs(int, int) - hides images from startindex to endindex (including the endindex)
             hidelocal()
             hurt(int)
             lay(str)
             message(str)
-            move(float, float, float, int)
+            move(float, float, float, int) - moves the npc smoothly, parameters are delta x, delta y, time and options:  cache type (0, 1-cache, 2-append) + blockcheck(4) + eventwhendone(8) + applydir(16)
             setbow(str)
             setcharani(str, str)
             setchargender(str)
@@ -1956,6 +1776,7 @@ TGraalVar:
               isweapon - boolean (read only)
 
       TServerBomb (TLevelObject):
+        image - string
         power - integer
         time - float
 
@@ -1982,9 +1803,10 @@ TGraalVar:
         text - string
 
       TShowImg (TLevelObject):
+        actor - object (read only)
         alpha - float
+        angle - float - particle movement angle
         ani - string
-        attachnode - string
         attachoffset - string
         attachtoowner - boolean
         blue - float
@@ -1992,52 +1814,69 @@ TGraalVar:
         dimension - integer
         dir - integer
         emitter - object (read only)
-        eulerrotation - string
         flashfile - string
         font - string
         green - float
+        height - float
         image - string
         imageindex - integer (read only)
-        is3dlight - boolean
         layer - integer
+        lifetime - float - particle lifetime
         mode - integer - the image drawing mode (0 - add, 1 - transparent, 2 - subtract, 3 - daynight)
+        movementvector - string - particle movement vector (angle + zangle + speed)
+        parth - integer
+        partw - integer
+        partx - integer
+        party - integer
         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.
         polygon - object
         position - string
         red - float
         rotation - float
-        shape - string
-        shapeobject - object (read only)
+        rotationcenter - string - the current rotation center (only works when useowncenter=true)
+        shadowcolor - string
+        shadowoffset - string
+        sound - string - particle sound
+        speed - float - particle movement speed
         spin - float
         stretchx - float
         stretchy - float
         style - string
         text - string
+        textshadow - boolean
+        uniqueparticle - boolean - says if each particle should store it's own data (good for text emitters)
+        useowncenter - boolean - by default the showimg is rotated around the image center, set this to true and set rotationcenter for custom rotations
+        width - float
         x - float
         y - float
         z - float
+        zangle - float - particle movement zangle
         zoom - float
 
   TDrawingPanel (TGraalVar):
+    availablefilters - object (read only) - available filters for filterrectangle()
     height - integer (read only)
     isclear - boolean (read only)
     parth - integer (read only)
     partw - integer (read only)
     partx - integer (read only)
     party - integer (read only)
+    profile - object
+    useownprofile - boolean
     width - integer (read only)
     clearall()
     clearrectangle(int, int, int, int) - x, y, width and height
+    drawcurve(int, int, int, int, int, int, float) - draws a curve with profile.fontcolor, parameters are x1,y1,x2,y2,x3,y3,linewidth (the curve goes close to x2,y2 but not through it)
     drawimage(int, int, str) - x, y, source image
     drawimagerectangle(int, int, str, int, int, int, int) - destination x and y, source image, source x,y,width and height
     drawimagestretched(int, int, int, int, str, int, int, int, int) - destination x,y,width and height, source image, source x,y,width and height
+    drawline(int, int, int, int, float) - draws a line with profile.fontcolor, parameters are x1,y1,x2,y2,linewidth
+    drawobject(int, int, obj) - destination x and y, object to draw (e.g. player)
+    drawtext(int, int, str) - draws text with the current profile, parameters are x, y and the text to draw
+    filterrectangle(int, int, int, int, str) - returns boolean - applys a filter (x,y,width,height,filter type), possible filter types are gray, nightgoggle, negative, updown, blackwhite and lesscolors
+    maskimage(int, int, str, str) - returns boolean - draws an image (x,y,filename) on top with a special mask operation (add or multiply), returns true if the operation was executed
     saveimage(str)
-
-  Terraformer (TGraalVar):
-    loadgrayscale(int, str) - returns boolean
-    loadgreyscale(int, str) - returns boolean
-    savegreyscale(int, str) - returns boolean
-    setterrain(int) - returns boolean
+    saveimage2(str, int) - saves the drawing panel under the specified filename, second parameter is the bitdepth (24 or 32)
 
   TFrameDetail (TGraalVar):
     bordercolor - string
@@ -2046,8 +1885,6 @@ TGraalVar:
     borderwidth - integer
     minextent - string
 
-  TGameObjectAttr (TGraalVar):
-
   TGaniParam (TGraalVar):
 
   TGraalAni (TGraalVar):
@@ -2105,14 +1942,28 @@ TGraalVar:
     deletepos(int, int)
     insertpos(int, int) - returns object
 
+  TGraalClientVar (TGraalVar):
+
   TGraalSpriteAttachment (TGraalVar):
     behind - boolean
     dx - integer
     dy - integer
     sprite - object
 
+  TGUIAnimation (TGraalVar):
+    amplitude - float - amplitude for moveupdown, moveleftright and zoominout
+    currenttime - float
+    delay - float - the animation starts after the specified number of seconds
+    duration - float - the animation will last the specified number of seconds
+    interval - float - interval for moveupdown, moveleftright and zoominout
+    tabfirstonshow - boolean - calls tabfirst() after showing the control, by default true
+    timing - string - timing function: 'linear' or 'sinus', sinus is only used for moveupdown, moveleftright and zoominout
+    transition - string - specifies the animation type: fadeout, fadein, moveoutleft, moveinleft, moveoutright, moveinright, moveouttop, moveintop, moveoutbottom, moveinbottom, moveupdown, moveleftright, flipoutleft, flipinleft, flipoutright, flipinright, zoomin, zoomout, zoominout, growin, growout, shrinkin, shrinkout, rotateoutleft, rotateinleft, rotateoutright, rotateinright
+
   THTTPRequest (TGraalVar):
+    onReceiveData() event - request finished, received data
     address - string (read only)
+    allowredirectext - boolean - if using requestURLAsGameFile and the file is redirected, allow it to use the redirected file extension (enabled by default)
     contentlanguage - string (read only)
     contentlength - integer (read only)
     contenttype - string (read only)
@@ -2120,23 +1971,13 @@ TGraalVar:
     file - string (read only)
     fulldata - string (read only)
     lastmodified - string (read only)
+    location - string (read only) - the redirection location
     port - integer (read only)
     returncode - integer (read only)
     returnmessage - string (read only)
     server - string (read only)
     url - string (read only)
 
-  TMovementRigid (TGraalVar):
-    mass - float
-
-  TParticle (TGraalVar):
-    angle - float
-    lifetime - float
-    movementvector - string
-    sound - string
-    speed - float
-    zangle - float
-
   TParticleEmitter (TGraalVar):
     attachposition - boolean
     autorotation - boolean
@@ -2154,12 +1995,17 @@ TGraalVar:
     emitautomatically - boolean
     emittedparticles - integer (read only)
     firstinfront - boolean
+    forceaboveterrain - boolean
     isfrozen - boolean
     maxparticles - integer
     movementfactor - float
+    noclipping - boolean - if set to true it will disable any clipping to screen or clipping box
     nrofparticles - integer
     particle - object (read only)
     particletypes - integer
+    showonground - boolean - show the particles parallel to the ground, only for 3D particles
+    showontop - boolean - show the particles on top of any 3d object, only for 3D particles
+    switchyandzaxis - boolean - switches y and z axis when drawing, only for 3D particles
     wraptoclippingbox - boolean
     addemitmodifier(str, float, float, str, str, float, float) - returns object
     addglobalmodifier(str, float, float, str, str, float, float) - returns object
@@ -2173,20 +2019,30 @@ TGraalVar:
   TParticleModifier (TGraalVar):
     addmod(str, str, float, float)
 
+  TRTMPStream (TGraalVar):
+    channelid - integer
+    file - string
+    mode - string
+    recordfile - string
+    streamid - integer (read only)
+    thumbnailfile - string
+    destroy()
+
   TScriptFunction (TGraalVar):
 
   TServerLevel (TGraalVar):
     compsdead - boolean (read only)
     height - integer (read only)
-    isnopkzone - boolean (read only)
+    isnopkzone - boolean
     issparringzone - boolean (read only)
-    nopkzone - boolean (read only) - same like 'isnopkzone'
+    nopkzone - boolean - same like 'isnopkzone'
     tilelayercount - integer
     width - integer (read only)
     findareanpcs(float, float, float, float) - returns object - returns an array of all npcs at the specified rectangle (x,y,width,height)
     getmappartfile(float, float) - returns string
     hitcompu(int, int, float, float)
-    putbomb(int, float, float)
+    putbomb(int, float, float) - adds a classic bomb with the specified power, x and y
+    putbomb2(int, float, float, str) - adds a classic bomb with the specified power, x, y and image (default bomb1.png)
     putcomp(str, float, float)
     putexplosion(int, float, float)
     putexplosion2(int, int, float, float)
@@ -2218,80 +2074,111 @@ TGraalVar:
     x - float (read only)
     y - float (read only)
 
-  TShapeMaterial (TGraalVar):
-    specularpower - integer
-
-  TShowImg_Values (TGraalVar):
-    alpha - float
-    blue - float
-    green - float
-    mode - integer - the image drawing mode (0 - add, 1 - transparent, 2 - subtract, 3 - daynight)
-    red - float
-    rotation - float
-    spin - float
-    stretchx - float
-    stretchy - float
-    zoom - float
-
-    TShowImg_Flash (TShowImg_Values):
-      flash - object (read only)
-
-    TShowImg_Gani (TShowImg_Values):
-      actor - object (read only)
-
-    TShowImg_Image (TShowImg_Values):
-      height - float
-      parth - integer
-      partw - integer
-      partx - integer
-      party - integer
-      width - float
-
-    TShowImg_Poly (TShowImg_Values):
-      parth - integer
-      partw - integer
-      partx - integer
-      party - integer
-
-    TShowImg_Shape (TShowImg_Values):
-      lightcolor - string
-      lightdirection - string
-      shadowdirection - string
-
-    TShowImg_Text (TShowImg_Values):
-      parth - integer
-      partw - integer
-      partx - integer
-      party - integer
-      shadowcolor - string
-      shadowoffset - string
-      textshadow - boolean
-
   TStaticVar (TGraalVar):
     destroy()
 
     Array (TStaticVar):
-      initialize(params...)
+      length - integer (read only)
+      array(params...) - returns object
+      push(params...) - returns integer - add array members at the end
+      splice(params...) - remove array members, parameters are start index and number of members
+      unshift(params...) - returns integer - insert array members at the beginning
 
     Color (TStaticVar):
-      initialize(obj)
+      color(params...) - returns object
       setrgb(int)
 
     Date (TStaticVar):
-      initialize(params...)
+      date(params...) - returns object
+
+    Key (TStaticVar):
+      backspace - integer (read only)
+      capslock - integer (read only)
+      control - integer (read only)
+      deletekey - integer (read only)
+      down - integer (read only)
+      end - integer (read only)
+      enter - integer (read only)
+      escape - integer (read only)
+      home - integer (read only)
+      insert - integer (read only)
+      left - integer (read only)
+      pgdn - integer (read only)
+      pgup - integer (read only)
+      right - integer (read only)
+      shift - integer (read only)
+      space - integer (read only)
+      tab - integer (read only)
+      up - integer (read only)
+      addlistener(obj)
+      getascii() - returns integer
+      getcode() - returns integer
+      isaccessible() - returns boolean
+      isdown(int) - returns boolean
+      istoggled(int) - returns boolean
+      removelistener(obj) - returns boolean
 
     Math (TStaticVar):
+      pi - float (read only)
+      sqrt1_2 - float (read only)
+      sqrt2 - float (read only)
       abs(float) - returns float
+      atan(float) - returns float
+      atan2(float, float) - returns float
+      ceil(float) - returns float
+      cos(float) - returns float
       floor(float) - returns integer
+      log(float) - returns float
+      max(float, float) - returns float
+      min(float, float) - returns float
+      pow(float, float) - returns float
       random() - returns float
+      round(float) - returns float
       sin(float) - returns float
       sqrt(float) - returns float
+      tan(float) - returns float
 
     Sound (TStaticVar):
-      initialize(params...)
+      sound(params...) - returns object
 
     String (TStaticVar):
-      initialize(params...)
+      string(params...) - returns object
+
+    TActionScriptVar (TStaticVar):
+
+    TSocket (TStaticVar):
+      onBind() event - the bind() call was successful
+      onBindFailed() event - the bind() call failed, wrong port or missing rights
+      onClose() event - the socket connect has been closed
+      onConnect() event - connect() succeeded
+      onConnectFailed() event - connect() failed
+      onNewClient(obj) event - a new client connected to the bound socket
+      onReceiveData(str) event - received (TCP) data
+      onReceiveDataPackage(str) event - received a data package (when using packagedelimiter)
+      onReceiveUDPData(str, str, int) event - received UDP data: data, sender ip and port
+      address - string (read only) - the server address this socket connected to
+      data - string - incoming data, if you are not using packagedelimiter then you must parse the incoming data yourself and clear it once you don't need it anymore
+      error - string (read only) - gives the error string if there was a problem
+      ipaddress - string (read only) - gives the ipv4-address as string
+      isconnected - boolean (read only) - says if the socket is currently connected or bound
+      packagedelimiter - string - if a delimiter is specified then the engine will automatically split the incoming data into packages and invoke onReceiveDataPackage(string); note that setting this delimiter will immediately invoke onReceiveDataPackage events, so do this after joining the classes which contain the event handler functions
+      parent - object (read only) - the server socket this client is belonging to (in parent.clients)
+      port - integer (read only) - the port this socket is bound or connected to
+      bind(int, bool) - binds the given port, second parameter says if it should be udp; when a client connects an onNewClient(newsocket) event will be invoked
+      close() - closes the socket, which means it will be disconnected or not longer bound
+      connect(str, int) - connects to the specified host and port, once the connection is established an onConnect event will be invoked and you receive onReceiveData(string) events when the other side of the connection sends data; if the connection fails then an onConnectFailed event will be invoked
+      send(str) - sends data to the other side of the connection
+      sendudp(str, str, int) - sends data to the specified host and port, the host must be an ip address
+
+      TRTMPClient (TSocket):
+        onCall(int, int, params...) event - remote call by the client: channel id, stream id, parameters
+        onGeneratedThumbnail(obj, str) event - a video thumbnail has been generated for a stream: stream object and filename
+        onHandShake() event - the other side has sent the connection handshake
+        call(int, int, params...)
+        createstream(int) - returns object
+        getstream(int) - returns object
+        sendhandshake()
+        sendinitialping()
 
   TTilesLayer (TGraalVar):
     alpha - float
@@ -2329,3 +2216,15 @@ TGraalVar:
     uninstall() - returns boolean
     update() - returns boolean
 
+  TWindow (TGraalVar):
+    bounds - string - array of {x,y,width,height}, combination of position and extent
+    extent - string - width and height of the control
+    height - integer
+    position - string
+    screenbounds - string (read only) - array of {x,y,width,height}, position and size of the screen where this window is shown
+    screenheight - integer (read only) - height of the screen where this window is shown
+    screenwidth - integer (read only) - width of the screen where this window is shown
+    width - integer
+    x - integer
+    y - integer
+