The flags member of the vsprite structure is both read and written by the system. Some bits are used by the application to inform the system; others are used by the system to indicate things to the application. The only flags bits that are used by true vsprites are: vsprite This may be set to indicate to the system that it should treat the structure as a true VSprite, not part of a Bob. This affects the interpretation of the data layout and the use of various system variables. vsoverflow The system sets this bit in the true VSprites that it is unable to display. This happens when there are too many in the same scan line, and the system has run out of Simple Sprites to assign. It indicates that this VSprite has not been displayed. If no sprites are reserved, this means that more than eight sprites touch one scan line. This bit will not be set for Bobs and should not be changed by the application. gelgone If the system has set GELGONE bit in the flags member, then the gel associated with this VSprite is not on the display at all, it is entirely outside the GEL boundaries. This area is defined by the gelsinfo members topmost, bottommost, leftmost and rightmost (see <graphics/rastport.h>). on the basis of that information, the application may decide that the object need no longer be part of the GEL list and may decide to remove it to speed up the consideration of other objects. Use remvsprite() (or rembob(), if it's a bob) to do this. This bit should not be changed by the application. The vsprite.flags value should be initialized like this for a vsprite GEL: myVSprite.Flags = VSPRITE;