From Graal Bible

Release date

September 17th 2007 for Windows, Linux and Mac

New features


  • more exact timing to ensure that Graal runs at exactly 20 fps, to not lag the video record audio
  • GS1 has been removed, Graal is now always using GS2 (new scripting engine), this also makes the Graal executable smaller
  • Linux/Mac: removed the "Keys 3D" tab from the options since those keys are not used anymore, 3D uses the same keys as 2D or scripted keys


  • GuiTextEditCtrl:
    • added Ctrl+Backspace for deleting the last word
  • GuiMLTextEditCtrl:
    • added Ctrl+Backspace for deleting the last word
  • GuiFlash:
    • Linux: loads correctly in fullscreen mode, input is enabled
  • GuiMLTextCtrl:
    • right-click on a tag with id invokes an "onRightSelectTag" event (can be used by <img id=number>, <div id=number> or <span id=number>), previously it was only invoking an event on normal mouse click (onSelectTag)
    • added tags <em>, <dfn>, <var> and <cite> which are the same as <i> (italic), <strong> which is the same as <b> (bold), <ins> which is the same as <u> (underlined)
    • fixed problems with incorrect newlines when using lists (<ul> and <ol>)
    • <span> and <div> also use the style of the control for the default colors
  • GuiPopUpMenuCtrl, GuiPopUpEditCtrl:
    • the popup menu is using the same style as the control
    • when using a GUI style then it is filling it with the "Window" color defined in the style
    • the popup controls now take the key focus (if profile.cankeyfocus is enabled), so you can move the selection with the up/down/page up/page down/home/end keys
  • GuiScrollCtrl:
    • if using a GUI Style and the control is opaque, then it is using the SunkEdge section instead of GroupBoxEdge section defined in the style package (they are most of the time identical, but sometimes GroupBoxEdge is only an outline) and is filling it with the "Window" color defined in the style; that is making the edit field in PM windows using a white background, and is fixing problems with some styles


  • Tiles: new functions getTileSet() for getting the current tileset (pics1.png etc.) and getTileSetType() for getting the tileset type (pics1.png is 0, tiles_inside.png is 1, picso.png is 5)
  • it is possible to use "true" as const value (const var = true;)
  • level.issparringzone works again on client-side (add an npc with the script "sparringzone" to disable the counting of kills and ap in the level)
  • projectiles are sent with higher precision and can use different gravity (always using the value of "gravity" when shooting)


  • more 3D functionality available in 2D:
    • added script variable isopengl and function switchToOpenGL() to enable 3D functionality
    • GuiPlayerView works better now, without flickering and displays 3ds and dts objects
  • on Windows you can select the fullscreen bit depth (16 or 32 depth) in the options, before it was always using 16 bit
  • Windows: graphics that are drawn alpha-transparent but are not resized will be drawn without anti-alias effect to preserve outlines


  • video recording (Alt+6) is now also capturing the audio, audio and video are synchronized
  • note: on Mac it's correctly recording, but QuickTime is not playing the avi correctly (sound is lagging behind); once you convert it to another format it will be fixed

Translation system

  • accepts other languages than "English" as the server language
  • you can specify a "defaultlanguage" for people that don't speak the serverlanguage (e.g. you can make a german server using serverlanguage "de" and let all other people see the defaultlanguage "en")
  • fixed some problems with languages other than en, de and fr (it was not accepting clientside translations for those)

Bug fixes

  • General bugs
    • Playerlist:
      • fixed a memory leak when a player is changing its postition on the list
      • shows a red name instead of displaying the "Your messages are ignored" PM
  • Graphic bugs
    • fixed some problems when downloaded body-files are not displayed (people appear with invisible body)
    • fixed a memory leak with gif files
    • fixed problems with sometimes getting black background on Graal Kingdoms or the error message 'A present display mode cannot be acquired'
    • reduced the number of drawing operations for the playerlist, eventually speeding it up on some machines
    • the option and profile window are correctly displayed on top in fullscreen mode
    • Graal3D on Linux/Mac: fixed a problem with players and npcs not using lights and always appearing flat
  • Script engine bugs
    • fixed a memory leak related to gani scripts
    • fixed level.setz(x,y,width,height,z1,z2,z3,z4) - it was crashing if you tried to modify heights outside of the players map part
    • fixed a problem with setting player.attr[] to a number (or to zero) on clientside which was making it impossible to assign a string again