In messiah there are various data types that fall under the classification of Entities. An Entity is an abstract data type that messiah owns. Examples of Entities are objects in a scene or controls on the interface. While there are specific data types for these Entities, FXobject and FXcontrol for example, they can also be referred to as FXentity. In fact, wherever you see an FXentity argument it is safe (unless otherwise noted) to pass any of the following types of data:
All Entities are simply ID numbers that are meaningful to messiah. For this reason when we talk about an FXobject variable we will often refer to it as an "object ID". The same holds true for the other Entities ("control ID", "group ID" etc.) Because Entities are only ID's you cannot access any of their data directly, instead you must use the various Components. For example, to get the name of an object you would pass its ID to the fxObjectGetName() function of the OBJECT component.
An Entity's ID number is persistent over its lifespan. Therefore it is safe to hang onto ID numbers over calls to your plugin. Although you shouldn't try to use an ID after the Entity has been destroyed, there will be no serious consequences if you do (i.e. crash). Of course whatever you were trying to do with the Entity will fail, but it will fail gracefully. In some cases you can check the validity of an Entity's ID, fxObjectCheckID() for example will verify that the FXobject passed still exists. In other cases Entity ID's are guranteed to be valid until a know point in processing, for example all FXcontrol IDs are valid until the module that created the control is unloaded.
Data Attachment
All Entities, with the exception of FXcommand can have arbitrary data attached to them. For more information see Data Attachment.