Entity

From Quake Wiki

Revision as of 06:33, 25 March 2013 by Than (talk | contribs) (made entity bold)

In Quake map making, an entity is any object defined in the .map file of a level, and are used to define the position and parameters of all the things that will appear in the level, such as monsters, items, doors, teleporters, lights and sounds.

Overview

Entities can be broadly defined as belonging to one of two different types, point entities and solid entities (also known as brush entities).

A point entity is an entity that can be thought of as being at a specific point in the level, and its geometry (if any) is predefined. For example, a monster is a point entity. A level author might place many ogres in their level, but each ogre will be the same shape and behave the same way because they are defined by the game already.

Solid entities, on the other hand, are entities which are made by the level author out of brushes and can take any shape the author wishes. A door, for example, is something that the level author needs to be able to make out of brushes in order to fit into different level_theme, different sized holes etc.

The static level geometry itself is also defined as a worldspawn entity, but it is a special entity that is treated differently by the compilers, and depending on the level editor being used, its settings might be accessed from a different place to that of other entities. The worldspawn is always the first entity defined in a .map file.

Entity Settings

In order to change their behaviour, appearance etc. all entities have settings that can be modfied by the level author. The following section contains general information about these settings. For specific entity setting information, see Entities.

Key/Value Pairs

A key/value pair is the name given to a single entity parameter; The key is the name of the parameter and the value is what it is set to. For example, a func_door entity has a parameter that sets how fast it moves. The key is named "speed" and it's value can be set by the user to alter the speed of the door. For the purposes of this wiki, we will use the format (key : value) as notation for key/value pairs in text passages. (speed : 100) means the speed parameter of the door is set to 100 units per second.

Note that sometimes the naming of keys is not particularly intuitive, so some editors hide the real key name and show the user something more easily understood. The names used in the wiki are the actual key names used by Quake, and are correct.

Origin and Angle

Origin and angle are keys supported by every single entity with the exception of the worldspawn, since it does not ever move and does not need them. Origin is used to define the position of an entity in the level, and angle is a value between 0 and 360 that sets its rotation. Both of these keys are usually hidden from direct editing by level editors; origin is almost always set only by moving the object around in the editor, and some editors (such as TrenchBroom) allow direct rotation of the entity to set the angle, wheras others (such as Worldcraft) have some kind of visual representation in their entity property editing tool as well as the ability to manually set the angle numerically.

Spawnflags

Spawnflags is the name given to a particular key that all entities support and is used to store multiple boolean parameters (flags) in a single key/value pair. The value of spawnflags is a number typically between 0 and 4096 and is calculated by adding the values given to each flag together. The value for any single flag is always a power of two. This is so that when loading a level, Quake can understand from the value of spawnflags which flags were set and which were not.

One of the uses of spawnflags is to tell Quake whether or not to spawn entities into the level on level load. These flags are listed below:

Flag Common Name
256 Not on Easy
512 Not on Normal
1024 Not on Hard
2048 Not in Deathmatch

Other flags are only valid when used with certain entities, but these four are universal and work with every entity.

Most level editors have a simple visual representation of spawnflags with checkboxes for each flag, so that the user does not need to calculate its value manually.