These tags define the visible elements of the balls. A ball can contain any number of part tags.
Balls with no parts area invisible.

name : string : Required
This is the unique name for the part. It is usually "meaningful" like body or eye.
It is used as a reference for the sinanim tags.
image : list-of-{Image Resource} : Required
Image to use for this part.
If multiple images given in a comma-separated list then one is selected at random for each ball.
x & y : float or min,max : Required
x and y define the position of this part within the ball. Usually the "body" part is set to x=0 and y=0
They can each be a single number, in which case the part is place in a fixed position.
However, each of these attributes can specify a range instead. If 2 numbers are specified then they are treated as a min and max value. The position of the part on each ball will be set randomly within this range.
layer : Integer : Default = 0
Defines the drawing layer / order of this part. Higher values are drawn over the top of lower values.
Unlike depth in the level model.. this must be an integer number and cannot be negative.
state : list-of-{State Names} : Default {All States}
This is a comma-seperated list of all the ball states for which this part should be drawn.
If omitted, then this part is always drawn.
scale : Float : Default = 1
Allow the size of this part to be changed relative to the others.
rotate : true / false : Default = false
Specifies whether this part rotates about the centre of the ball as it walks / moves.
Usually set True, but often left false on body and hilite images.
stretch : {speed},{direction scale},{across scale} : Default = No Stretching
This defines how the part will stretch as the ball moves when it is falling or being dragged.
The first number is a speed. The amount of stretching varies from "no stretching" when the ball is not moving to "maximum stretching" when it is moving at this speed.
The second number is the maximum amount of stretching in the direction of motion
The third number is the maximum amount of stretching perpendicular to the direction of motion.
The original balls uses values like 24,1.5,0.75 and 16,2,0.5
These produce the effect of the balls "stream-lining" when they are moving quickly.
eye : true / false : Default = false
Specifies that this part is an eye, and tells the game that following attributes should also be used.
If this is set to false (or omitted) the following attributes are ignored.
pupil : {Image Resource} : Required (if eye is true)
The image for the pupil
pupilinset : Integer : Default = 0
The distance from the outside edge of the eye to the pupil.
If this value is too low (size of the pupil or less) then the pupil will appear outside the eye image.
If set to a large value the pupil remains fixed in the centre of the eye.
Original balls used values 12-14, except for large balls like Beauty which used values up to about 60
xrange and yrange : min,max : Default (no Motion)
These attributes specify the range of motion of the part when the ball is moving, or bouncing off things.
The values are specified relative to the ball the same as the part position / range (x,y)
If omitted the part remains in a fixed position on the ball.
These are normally used only on "eyes" to give the "googly-eye" look, however they can be used on any part.
eg Beauty's lips and Ivy's leaves.