======Object====== ---- An **object** is a resource type meant for certain entities that can be interacted with by the player as well as for those that are simply decorations to place onto tiles. Objects, similar to [[tile|tiles]] and [[character|characters]], are created in the [[Voxel Editor]] and then placed into a map using the "Place" mode of the [[Map Editor]]. Refer to the table below for some examples of what should be represented as an object in your game. ^Usage^Examples^ |Interactive Entities|Treasure chests (or other containers), signs, doors, levers, switches| |Decorations|Tables and chairs (or other furniture), trees, bushes, fences| |Item Pickups|A key or potion within the world that will provide an item to the player| =====Scripting===== Refer to the table below for a list of object properties that can be accessed from a [[script]]. If the property's value can be changed using an [[script_syntax|assignment statement]], it will be noted in the description. ^Property^Description^ |.id|Entity ID of the object, as set in the [[Map Editor]] from the [[Entity Properties]] panel. This can be used to either retrieve or change the ID of the object.| |.type|Type of [[entity]], in this case the constant value OBJECT.| |.coord|[[Coordinate]] of the object.| |.direction|[[Cardinal direction]] (NORTH, SOUTH, WEST, EAST) in which the object is rotated. The default direction of an [[entity]] is SOUTH.| |.tiles|An [[array]] of [[tile|tiles]] that the object is currently occupying.| |.groups|An [[array]] of [[groups]] to which the object is assigned. The [[array]] will be empty if the object is not assigned to any [[groups]].| |.tags|An [[array]] of tags (as [[string|strings]]) for the object, as set in the [[Voxel Editor]] from the [[Model Properties]] panel.| |.interact_cursor|Interaction cursor for the object, as set in the [[Map Editor]] from the [[Entity Properties]] panel. This can be used to either retrieve or change the interaction cursor for the object. Valid values include "default", "walk", "interact", "speak", "attack", or any custom cursor defined in your [[game configuration]].| |.property["x"]|Custom property stored on the object, where "x" is a [[string]] containing the name of the property. This can be used to either retrieve or change the property's value.| |.model|Name of the object's model (e.g. "tree").| |.frame|Current [[animation]] frame (as a [[number]], with the first frame being 1). This can be used to either retrieve or change the model's current frame. If this property is changed and an [[animation]] is playing, the [[animation]] will first be stopped.| |.animation|Name of the [[animation]] currently playing for this object (as a [[string]]). Value will be null if no [[animation]] is playing.| |.animations|An [[array]] of [[animation]] names defined for this object. The names will be [[string]] values.| |.attach_points|An [[array]] of [[attach_points|attach point]] names defined for this object (across all [[animation]] frames). The names will be [[string]] values. The [[array]] will be empty if no [[attach points]] are defined.| |.attachment["x"]|[[Object]] attached to the object, where "x" is the [[attach_points|attach point]] ID.| |.effect["x"]|[[Effect]] attached to the object, where "x" is the [[attach_points|attach point]] ID.| |.textures|An [[array]] of texture names defined for this object. The names will be [[string]] values.| |.scale|Scale of the object, as set in the [[Map Editor]] from the [[Entity Properties]] panel. This can be used to either retrieve or change the scale of the object. When changing the scale, an [[array]] with three numeric values (X, Y, Z) is expected.| |.scale_x|X scale of the object, as set in the [[Map Editor]] from the [[Entity Properties]] panel. This can be used to either retrieve or change the X scale of the object.| |.scale_y|Y scale of the object, as set in the [[Map Editor]] from the [[Entity Properties]] panel. This can be used to either retrieve or change the Y scale of the object.| |.scale_z|Z scale of the object, as set in the [[Map Editor]] from the [[Entity Properties]] panel. This can be used to either retrieve or change the Z scale of the object.| |.offset|Offset of the object, as set in the [[Map Editor]] from the [[Entity Properties]] panel. This can be used to either retrieve or change the offset of the object. When changing the offset, an [[array]] with three numeric values (X, Y, Z) is expected.| |.offset_x|X offset of the object, as set in the [[Map Editor]] from the [[Entity Properties]] panel. This can be used to either retrieve or change the X offset of the object.| |.offset_y|Y offset of the object, as set in the [[Map Editor]] from the [[Entity Properties]] panel. This can be used to either retrieve or change the Y offset of the object.| |.offset_z|Z offset of the object, as set in the [[Map Editor]] from the [[Entity Properties]] panel. This can be used to either retrieve or change the Z offset of the object.| |.rotation|Rotation of the object, as set in the [[Map Editor]] from the [[Entity Properties]] panel. This can be used to either retrieve or change the rotation of the object. When changing the rotation, an [[array]] with three numeric values (X, Y, Z) is expected.| |.rotation_x|X rotation of the object, as set in the [[Map Editor]] from the [[Entity Properties]] panel. This can be used to either retrieve or change the X rotation of the object.| |.rotation_y|Y rotation of the object, as set in the [[Map Editor]] from the [[Entity Properties]] panel. This can be used to either retrieve or change the Y rotation of the object.| |.rotation_z|Z rotation of the object, as set in the [[Map Editor]] from the [[Entity Properties]] panel. This can be used to either retrieve or change the Z rotation of the object.| ~~NOTOC~~