Skip to content
Dylan Baker edited this page Mar 16, 2024 · 7 revisions

The VEML document can specify 0 or more entities to place in the environment. This page outlines the entity types defined in the VEML specification.

What is an Entity?

An entity is any type of object that exists in an environment. It can be solid, fluid, invisible, part of the UI, or something else.

VEML v1.1

v1.1 Base Entity Definition

Elements:

  • transform: transform - The transform of the entity.

    Minimum: 1

    Maximum: 1

  • entity: entity[] - The entities that fall directly under this entity in the hierarchy tree.

    Minimum: 0

    Maximum: unbounded

  • synchronizer: string - ID of the synchronizer to synchronize the entity with.

    Minimum: 0

    Maximum: 1

  • placement-socket: placementsocket - placement sockets to attach to this entity

    Minimum: 0

    Maximum: unbounded

Attributes:

  • tag: string - A tag to apply to the entity. This differs from an ID in that an entity is not guaranteed to be uniquely identifiable by its tag. Intended to be human readable.

    Minimum: 1

    Maximum: 1

  • id: string - A UUID-encoded identifier for the entity. If one is not provided, the engine will define a new one.

    Minimum: 0

    Maximum: 1

  • on-load-event: string - An optional event (script logic) to invoke upon completing loading of the entity.

    Minimum: 0

    Maximum: 1

1.1 Container Entity Definition

The container entity extends the base entity.

It does not contain any additional fields.

v1.1 Character Entity Definition

The character entity extends the base entity.

It does not contain any additional fields.

v1.1 Canvas Entity Definition

The canvas entity extends the base entity.

It does not contain any additional fields.

v1.1 Button Entity Definition

The button entity extends the base entity.

Additional Fields:

  • on-click-event: string - An event to invoke upon clicking of the button.

    Minimum: 0

    Maximum: 1

v1.1 Input Entity Definition

The input entity extends the base entity.

It does not contain any additional fields.

v1.1 Mesh Entity Definition

The mesh entity extends the base entity.

Additional Fields:

  • mesh-name: string - Name of the top-level mesh.

    Minimum: 1

    Maximum: 1

  • mesh-resource: string[] - A list of files containing mesh resources to load for the mesh.

    Minimum: 1

    Maximum: unbounded

v1.1 Light Entity Definition

The light entity extends the base entity.

It does not contain any additional fields.

v1.1 Terrain Entity Definition

The terrain entity extends the base entity.

Additional Fields:

Elements:

  • layer: terrainentitylayer[] - A list of terrain entity layers to use on the terrain.

  • layer-masks: string - Comma-separated 2D arrays of layer mask values (the intensity of each layer at a given position). Each array is separated by a '|'. Example (for 3 layers on a 3x3 terrain):

    0,0.1,0.2;0.3,0.4,0.5;0.6;0.7;0.8|0.9,1,0;0.1,0.2,0.3;0.4,0.5,0.6|0.7,0.8,0.9;1,0,0.1;0.2,0.3,0.4
    

Attributes:

  • length: double - Length (in meters) of the terrain.

    Minimum: 1

    Maximum: 1

  • width: double - Width (in meters) of the terrain.

    Minimum: 1

    Maximum: 1

  • height: double - Height (in meters) of the terrain.

    Minimum: 1

    Maximum: 1

  • heights: string - A comma-separated 2D array of heights.

    Example (for a 4x4x4 terrain):

    "0,1,2,3;3,2,1,0;1,2,0,3;2,1,3,0"
    

    Minimum: 0

    Maximum: 1

  • type: string - Type of terrain. Can be one of (heightmap, voxel, hybrid). Defaults to heightmap.

    Minimum: 0

    Maximum: 1

v1.1 Text Entity Definition

The text entity extends the base entity.

Additional Fields:

  • text: string - Text to place on the text entity.

    Minimum: 1

    Maximum: 1

  • font_size: float - Size to apply to the text entity's font.

    Minimum: 1

    Maximum: 1

v1.1 Voxel Entity Definition

The voxel entity extends the base entity.

It does not contain any additional fields.


VEML v1.0

v1.0 Base Entity Definition

Elements:

  • transform: transform - The transform of the entity.

    Minimum: 1

    Maximum: 1

  • entity: entity[] - The entities that fall directly under this entity in the hierarchy tree.

    Minimum: 0

    Maximum: unbounded

  • synchronizer: string - ID of the synchronizer to synchronize the entity with.

    Minimum: 0

    Maximum: 1

Attributes:

  • tag: string - A tag to apply to the entity. This differs from an ID in that an entity is not guaranteed to be uniquely identifiable by its tag. Intended to be human readable.

    Minimum: 1

    Maximum: 1

  • id: string - A UUID-encoded identifier for the entity. If one is not provided, the engine will define a new one.

    Minimum: 0

    Maximum: 1

  • on-load-event: string - An optional event (script logic) to invoke upon completing loading of the entity.

    Minimum: 0

    Maximum: 1

v1.0 Container Entity Definition

The container entity extends the base entity.

It does not contain any additional fields.

v1.0 Character Entity Definition

The character entity extends the base entity.

It does not contain any additional fields.

v1.0 Canvas Entity Definition

The canvas entity extends the base entity.

It does not contain any additional fields.

v1.0 Button Entity Definition

The button entity extends the base entity.

Additional Fields:

  • on-click-event: string - An event to invoke upon clicking of the button.

    Minimum: 0

    Maximum: 1

v1.0 Input Entity Definition

The input entity extends the base entity.

It does not contain any additional fields.

v1.0 Mesh Entity Definition

The mesh entity extends the base entity.

Additional Fields:

  • mesh-name: string - Name of the top-level mesh.

    Minimum: 1

    Maximum: 1

  • mesh-resource: string[] - A list of files containing mesh resources to load for the mesh.

    Minimum: 1

    Maximum: unbounded

v1.0 Light Entity Definition

The light entity extends the base entity.

It does not contain any additional fields.

v1.0 Terrain Entity Definition

The terrain entity extends the base entity.

Additional Fields:

  • length: double - Length (in meters) of the terrain.

    Minimum: 1

    Maximum: 1

  • width: double - Width (in meters) of the terrain.

    Minimum: 1

    Maximum: 1

  • height: double - Height (in meters) of the terrain.

    Minimum: 1

    Maximum: 1

  • heights: string - A comma-separated 2D array of heights.

    Example (for a 4x4x4 terrain):

    "0,1,2,3;3,2,1,0;1,2,0,3;2,1,3,0"
    

    Minimum: 1

    Maximum: 1

v1.0 Text Entity Definition

The text entity extends the base entity.

Additional Fields:

  • text: string - Text to place on the text entity.

    Minimum: 1

    Maximum: 1

  • font_size: float - Size to apply to the text entity's font.

    Minimum: 1

    Maximum: 1

v1.0 Voxel Entity Definition

The voxel entity extends the base entity.

It does not contain any additional fields.

Clone this wiki locally