From Graal Bible

Release date

2005 for Windows


Graal v2.3 brings several huge improvements. The most important are:

  • Editor and online client are separated exes now; this increases the security and makes it possible to update them more often
  • Filename cache: To avoid slow NTFS-operations, Graal is now able to cache the file names and times, so that it doesn't need to scan the subfolders at each startup
  • New Timer: Graal doesn't take 99% cpu time anymore, the timer has been chanced to be as precise before but not using the cpu as much as before anymore
  • Fast NPC Lookup: Using new BTree-technology, Graal can detect the visibility and blocking behaviour of objects more efficiently, good for servers with gmaps
  • Classic Clientside-mode removed: Classic has been switched to use NPC-Server, so the client doesn't need insecure script commands like "toweapons" anymore
  • ATI 32 bit mode fixed

An almost complete list of improvements and bug fixes:

  • Editor and online client are separated now: You will find a Graal.exe and a GraalEditor.exe in the Graal folder. To easily start the editor there is a button in the starting window which automatically starts the GraalEditor.exe, but you can of course also start it directly with Windows Explorer or add a file association. The button "Offline Test" also starts the editor, but with option "-play". The editor is more or less the same than before. The online client is more secure now because it doesn't have any functions for loading levels or npcs anymore.
  • Filename cache: Previous Graal versions sometimes took a long time to start because Graal scans each subfolder at startup, to easily find the files when needed do display objects. The default Windows file system NTFS is very slow for that though. To make Graal also start fast on NTFS, it is now caching the file names, their location and modification time. It is saving all information into FILENAMECACHE.txt, and reading that at the next startup.
    • Disadvantages:
      • While the startup is much faster, the login to servers might take slightly more time
      • When you copy files into the Graal folder then Graal will not see that delete FILENAMECACHE.txt in that case, or disable the filename cache in the Graal options
  • New Timer: Graal doesn't take 99% cpu time anymore, the timer has been chanced to be as precise before but not using the cpu as much as before anymore
  • Fast NPC Lookup: Using new BTree-technology, Graal can detect the visibility and blocking behaviour of objects more efficiently, good for servers with gmaps; On some servers (especially Zone) some areas are 10 times faster now (or 10 times less laggy). It speeds up all areas that have many npcs. Together with the lookup some other small bugs with drawing objects have been removed too.
    • Things that are affected by the new npc lookup:
      • Script functions "onwall" and "tiletype" are much faster
      • Objects using huge ganis (e.g. houses) are drawn correctly and not disappering when half of them are still on the screen
  • New script functions onwall2(x,y,width,height) and onwater2(x,y,width,height), these functions have been added because of the new npc lookup which is made for checking rectangles, not just points; with them you can check if a rectangle area is blocking or under water
  • Script function testplayer(x,y) has been fixed for gmaps
  • When moving on other parts of the gmaps then the focus is not reset anymore (script command setfocus(x,y))
  • ATI 32 bit mode has been fixed
  • Problems with the 32bit color resolution where some images were not drawn with correct transparency were fixed
  • Profiles are correctly displayed even if the option "Save PMs/Profiles" is disabled
  • New Server Tab: Graal3D - When clicking on a Graal3D server in the serverlist then Graal3D is automatically started and connecting to the selected server; if you often play Graal3D server or want to play Graal with better speed you can also start Graal3.exe directly
  • When typing in a server name in the text field below the serverlist then the correct server is chosen; perfect matches are preferred, instead of taking the first name on the list
  • Graal is automatically registering the browser protocol "graal://" and "graal3://", so if you type in "graal://Servername/options" in a webbrowser then it is automatically starting Graal, connecting to the right server, and sending a "serverstartparams" trigger to the Control-NPC of that server with the specified parameters. This is made for making it possible that people can directly join an event or similiar on a server by just clicking a link on a website. If this doesn't work, then please start Graal one time as administrator (for registering a protocol you need administrator rights, although good webbrowsers like Firefox are asking you can again if you really want to start the executable).
  • The editor doesn't delete levels anymore when it is crashing while saving levels it is first making a copy and renaming the new level when succeeding
  • "clientside" triggers by the server are always working now
  • triggers on gmaps sent by the server or other clients have been fixed to always work
  • entering gmaps has been improved to not crash or display trash
  • Support for sending and receiving player positions in full precision has been added, also npc positions and moves can be received in full precision now, this will be enabled once all clients are switched to the new version
  • Scripting variable timevar2 has been added which is giving the time since the start of the machine, but with milliseconds resolution (is not identical to timevar2 on the server, for synchronization of time events use "timevar")
  • String variable #v(floating point) has been improved to display also integers with more than 6 decimals correctly, which makes it possible to fix the item sorting on Graal Kingdoms
  • when the player is hurt then the showimgs of the weapons are not removed anymore
  • When the background image or time of Windows is changed on desktops using comma as decimal separator then Graal is automatically switching back to dot as decimal separator, so not messing up scripts or level warps anymore
  • Several improvements of the hacking checks
  • Script variable downloadsize is correctly giving the size of the file that is currently downloaded works together with downloadpos and #D


  • fixed bugs in the conversion of floating point to strings which bugged some scripts
  • the keyboard configuration is correctly saved and loaded now
  • npcs on gmaps move correctly when crossing level borders
  • removed some unused buttons in the option window (F1)