For my sprite behaviour/handling code, each sprite has an .update(int timescale) method, that is called from the Engine on each game loop. The sprite's behaviour is modified at runtime by adding or removing 'action' classes in the sprite's .update() method. So for example, having a status message shoot in from the left of the screen, then bounce a few times before dropping off the bottom of the screen would look like this... Code: status.addAction(new MoveAction(status, speed, startx, starty, endx, endy)) status.addAction(new BounceAction(status, speed, height, gravity, number)) status.addAction(new MoveAction(status, speed, endx, endy)) The sprite maintains a list of these actions, calling .update on the first action object each game loop until completion, then removing this object from the list and moving onto the next action object. A sort of poor-man's scripting system. I'm curious, is this mechanism similar to what anyone else uses for sprite behaviour?