Entities Overview
Unlike brushes, entities are special objects in a map that have specific functions. An example of an entity would be a button or a door, because it works in its own way aside from being a static part of the game world. Paintball 2 has a number of entities, some originating from the game engine it uses (id Tech 2) to others original to Paintball, ranging from blinking lights, to flags, to earthquake creators, and to sound emitters. Some entities envelop a brush in order to work (such as the platform entity), while others do not need to (such as a flag). Some entities can be "targeted," so that if one entity is triggered (such as a button), it can trigger the entity it targets (such as a door). Because some entities are merely used for targetting other entities, they are hidden, but other entities show in the game world.
Non-brush versus Brush-based
Some entities need to envelope a brush—it is how they work. For example, the base entitiy defines the area where a flag can be captured, but it needs a brush in order to define what this area is in the map. Another example would be a door: the enveloped brush would be the door that would be moving. However, others do not. The flag entity does not need to move anything or define a region of the map: it is just one point where the flag will be. Therefore, it does not use a brush: it is not brush-based.
In BSP the editor, if you attempt to create a brush-based entity without creating a brush, it will report an error and inform you that a seed brush is required. In such a case, create a brush, select it, and then try creating the entity. The opposite applies: the editor will complain if you try to create a non-brush based entity from a brush. In which case, deselect all brushes before trying.
Keys, Values, and Flags
Entities can have parameters applied to them. These parameters have a "key" to define what that parameter is (such as "angle") and a "value" to define what the content of the parameter is (such "90" for 90 degrees). Generally, these parameters are refererd to by just keys. All entities have the classname key that defines what kind of entity it is—deleting this key will cause your entity to have issues with its identity in its cruel, cruel map world!
If you are using BSP, once a entity is created and selected, new keys can be added by pressing the plus button. Selecting a key and clicking the minus button will remove the key.
In addition, some entities have flags. They are like keys, but they only have two states: on and off. All the flags are actually stored in a spawnflags key, but its value is stored by combining bits, so using your editor to adjust the flags is much easier. The door entity, for example, has the TOGGLE flag that causes it to toggle between open and closed states, instead of opening and then closing after a few seconds.
In BSP, when an entity is selected, there are checkboxes are at the bottom of the entities window. These checkboxes are flags. Most entities do not have that many flags, so there will be extra checkboxes with no label. Some entities have no flags at all.
Targets and Triggers
As mentioned earlier, some entities can target other entities. The targeted entities will then do what it does when it is triggered (ex. a button causes a door to do what it does: open), or it can target other entities to create a chain. While the func_door entity does not need to be targeted by another entity because it will work on proximity, if it is targetted, it will only open if the targeting entity triggers the door. For example, the targeting entity could be a button, which when pressed, would trigger the door. However, unlike the door entity, some other entities do need to be targetted to work.
The name of an entity that other entities will use to target is defined in the targetname key. For example, a door could be given the targetname of "uber_door". To target other entities, the name of the other entity should be put into the target key. In the case of the door-activated-by-a-button scenario, the button could be given the target of "uber_door". Now, when the button is pressed, the door will open.
Control Entities
Some entities that work with targets do not appear in the map because they only exist to trigger other entities. For example, the func_timer entity acts as a timer that can be activated after a set amount of time. It does not show in the game, but it can trigger other entities (such as a door). Another control entity would be func_elevator—it allows multi-level elevators in maps.
Multiple Targets
Two or more entities can be given the same targetname so that one entity can target multiple entities. A button could open three doors at once, for example.
Chaining and Branching
Targeted entities can target even more entities. Therefore, a chain of targeted entities could be created to create complex events. An example of an entity chain could involve a button, a door, a timer, and another door. When the button is pressed, the first door is opened immediately. However, the timer entity is also triggered, and then it waits five seconds to open the second door.

Pathtarget
In addition to target, there is pathtarget. This serves as a secondary target for some entities, but it does not apply for most of the entities. Pathtarget uses targetname for the names too.
