From GraalBible

Jump to: navigation, search


Release date

November 4th 2012 for Windows and Mac, November 10th for Linux

Note: various other platforms are now supported (iPhone, Bada, Android, Flash) but they don't follow this exact release cycle.

New features

GUI animations

Animate GUI without requiring script timeouts:

with (MyWindow.createAnimation()) {
  transition = "moveintop";
  duration = 0.5;

This is animating the window, it floats in from the top of the screen to the current position.

Support of multiple GUI styles at once

  • It is possible now to switch instantly between different GUI styles without restarting Graal
  • You can use several GUI styles at the same time which use the same file names
  • When GUI styles use huge graphics then they are automatically restricted to a maximum width and height of 2048 so that they display correctly most of the time (fixes e.g. some animated start menus)
  • Buttons and similar that have graphics in the middle that are tiled are correctly displayed now

New particle engine

The new particle engine is up to 100 times faster, uses less CPU time and rendering time. It works best if you display images and only use a single particle template.

No scanning of files at startup anymore

External scripted windows

You can now easily create external windows by creating a GuiWindowCtrl and setting isexternal to true. This will show all the content of this window in a new external window which can be moved, resized and closed by the user.

Scripted Tools

Several windows which were previously hard-coded are now controlled by script and use the new external-window feature:

  • Playerlist
  • PMs
  • Options
  • Profiles
  • RemoteControl

Improved file download from web

  • Supports https
  • Keep-alive connections
  • Update of files
  • Download of web files as game files

Extended script engine documentation

You can get the script engine documentation by starting the game client with the start option -listscriptfunctions. It will now print GUI events like onShow and onHide.

Smoother move() function

The NPC move() function is now preventing that NPCs are jumping:

  • If the player is lagging then the NPC is shortly moving faster to catch up to the new position
  • Works also when you don't use caching (movement flag 0 instead of 1 or 2)

360-degree projectiles

Just add a ROTATEPROJECTILE line in the .gani file:


Projectiles which use a gani with ROTATEPROJECTILE enabled will automatically be rotated depending on the fly path of the projectile. The gani itself must also have a SINGLEDIRECTION line and show the right direction of the projectile (projectile flying to the right).

Text with gradient

GUI profiles allow you to define a text gradient with the textgradient and gradientcolor attributes:

new GuiTextCtrl("MyTextCtrl") {
  bounds = {100,100, 200,30};
  useownprofile = true;
  profile.fontcolor = "white";
  profile.textgradient = true;
  profile.gradientcolor = "gray";
  text = "Hello World!";

Bug fixes

  • Various crashes related to the scripting engine and handling of objects being destroyed and then recreated
  • Multi-line text could freeze the game if the font is not existing
  • Fixed a crash when the size of a gmap is increased
Personal tools