Interface Overview
Assets Workflow
Settings and Preferences
Adjusting Node Parameters
Setting Up Materials
Setting Up Properties
Landscape Tool
Using Editor Tools for Specific Tasks
Setting Up Development Environment
Usage Examples
UUSL (Unified UNIGINE Shader Language)
File Formats
Rebuilding the Engine and Tools
Double Precision Coordinates
Common Functionality
Controls-Related Classes
Engine-Related Classes
Filesystem Functionality
GUI-Related Classes
Math Functionality
Node-Related Classes
Networking Functionality
Pathfinding-Related Classes
Physics-Related Classes
Plugins-Related Classes
CIGI Client Plugin
Rendering-Related Classes


For the object to be correctly integrated into the world, defining its position, inherent characteristics and outside appearance will be insufficient. Properties specify the way the object will behave and interact with other objects and the scene environment. A property can be thought of as a "material" for application logic.

A property is a set of logic-related parameters. You can define conditions, based on which parameters of the property become available/unavailable in the UnigineEditor.

Properties can be assigned to both the whole node and a single surface:

  • In the first case, properties can specify additional settings that extend the built-in ones (e.g., they can be used to specify if a node is interactive and whether it is a switch). For a character, properties can be used to specify health points or gold amount. You can assign multiple properties to a single node.
  • In the second case, a property can specify certain parameters that can be used during physical interaction with the surface. For example, the property can indicate the type of the material assigned to the surface (wood, metal, plastic, etc.). Only one property can be assigned to a surface.
Thus, properties make the nodes comply with the game/application logic and can be used to build components in order to extend the functionality of nodes.

UNIGINE's Properties system includes the following:

All properties in the project are organized in a hierarchy.

Each property is stored in a separate *.prop file, except for the internal properties.

Manual Properties

Manual properties are created and edited manually: they are displayed as read-only in the UnigineEditor. It is possible to modify them via API at run time (if the corresponding flag is set), but such changes won't be saved. To customize a manual property, you should either inherit a new user property from it or directly edit the corresponding *.prop file.

When inheriting from a property, the parent passes all its parameters to the child. If the parent property is modified later, all inherited properties that are not overridden will be updated automatically.

In the *.prop file of a manual property its name is stored. If a manual property is inherited from another manual property, the child's *.prop file will store a name-based reference to the parent. The GUID for the manual property is uniquely determined by its name and is generated at run time.

Base Properties

Base property is a manual property that does not have a parent, base properties are at the top-level of the hierarchy, all other properties are inherited from them.

By default, UNIGINE provides 2 built-in read-only base properties: node_base and surface_base. You can also make custom base properties of your own.

User Properties

User property is a property inherited from any other property via the UnigineEditor, it overrides the parameters of its parent.

The *.prop file of the user property contains its GUID and a GUID-based reference to the parent property. Such file is created automatically when inheriting a new property in the UnigineEditor. The set of user property parameters is determined by its parent, while their values can be modified.

Internal Properties

Internal property is a property without a name. When cloning or inheriting a property, each new property becomes internal until a name is assigned to it. Internal properties are also created when you assign a property to a node.

Instanced properties assigned to nodes are saved in a *.node or a *.world file.

See Also

Last update: 2018-04-26