From Graal Bible

Release Date

July 27th 2006

New features

Server list and Games list

  • New Layout including display of the server map
  • A set of vector graphics games where you can play for highscore or play against other players and bet gralats or chat
  • Easier interface to access events on servers

Flash Content

- Use flash resources (e.g. vector graphics) in Graal

findimg (200) {
  layer = 4;
  x = 100;
  y = 100;
  flashfile = "test.swf";
  flash.object = "btn1";

Other attributes are flash.frame, flash.looping,flash.playing. You can also call and flash.stop() instead of modifying flash.playing. When flash.object is empty, then it will display the whole flash movie (might not look correctly though since flash script is ignored).


  • Animated emoticons
  • True type fonts on Mac and Linux

Hacking protection

  • Better protection of base variables
  • Better detection of cheating tools


  • Several GUI fixes for clipping of images and text
  • play2 / playlooped2 fixed on gmaps
  • player.language and player.languagedomain work on clientside
  • polygons can be textured now:
with (findimg(200)) {
  layer = 4;
  dimension = 2;
  polygon = {100,100,200,100,200,200,100,200};
  image = "mud_apple.png";
  • drawing panels (GuiDrawingPanel and icons) are updated automatically when a file has been downloaded
  • fixed some problems when drawing pngs with alpha-channel onto drawing panels
  • isapplicationactive variable, is either true or false
  • isdownloadingfile(filename) returns true/false
  • random generators can be created by script:
rand = new MRandomLCG(); // or MRandomR250()
rand.seed = 123; // optional
echo("random integer: " @ rand.randInt());
echo("random float: " @ rand.randFloat());

- All GUI controls support text shadow (instead of just in GUIMLTextCtrl):

profile.textshadow = true,
profile.shadowOffset = {1,1},
profile.shadowColor = {0,0,0} for black shadow 

- In the GUI the text style can be changed now to display italic or bold text:

profile.fontStyle = "i", "b" or "bi"
  • GuiTreeViewCtrl improvements:
    • nodes can use their own profile
    • support for bigger icons
    • you can access the position and extent of nodes (read only)
    • you can hide the first vertical line by setting firstLineVisible to false
    • the width of the box and the space between lines can be modified with the variables boxwidth and statuswidth
    • onMouseOverCell(node,dotname,slashname) event
  • GuiTextListCtrl improvements (this also includes controls which are copying functions from this, like GuiContextMenuCtrl):
    • the selected row is correctly moved when the list is sorted or a new row is inserted
    • rows can use their own profile
    • support for bigger icons
    • onMouseOverCell(entryid,entrytext,entryindex) event
  • in GuiMLTextCtrl there is support for more html tags: boldtext, italictext
  • for GuiWindowCtrls where the inside of the window border is round, you can define profile.backgroundinset = {5,5,5,5} (left,top,right,bottom) to define where the background layer should be displayed, instead of at the border bitmap offset

Network improvements

  • /ping command on servers (will eventually be accessible for scripts later)


Revision 2

August 18th 2006


  • the Z emoticon is correctly displayed
  • showpoly-lines are shown correctly
  • the start-in-fullscreen option is not crashing the game anymore, also switching to fullscreen is working better in general
  • GuiBitmapBorderCtrl works always
  • basic web-image download has been added, it is not recommended to use it on regular servers though (it's more for developers)
  • the true type fonts can be disabled on Linux (and later on Mac) now