Data/Actors/ActorRequest

# ActorRequest

## Description

Used by many fields to create or find actors in varying scopes

#### Description

Defines in what scope the request should create or find the specified Subject actor

#### RequestScope

When a request's Actor field is 'Create':

* **Caster Outer**: Similar to 'Caster' but specifies the containing scope (i.e. a Medivac or a Bunker's scope, as opposed to the Marines inside it), if it exists.
* **Implicit**: This creates the actor in the creating actor's scope.
* **Scope Caster**:

> Requires the creator to have been created by an effect. Creates the actor in the caster scope of the effect that created the requesting actor, unless an Effect value is specified, then it can be any caster scope in the effect tree with respect to that effect name. The effect must be in the requestor's effect ancestry, or it is ambiguous.
>
>

* **Scope Effect**: Creates the actor in the effect effect scope. The request Effect field is unnecessary, since there is only one effect tree scope.
* **Scope Missile**: Same as 'Caster', but only creates in missile scopes.
* **Scope Outer**: Same as 'Caster Outer', but only creates in source outer scopes.
* **Scope Source**: Same as 'Caster', but only creates in source scopes.
* **Scope Target**: Same as 'Caster', but only creates in target scopes.
* **Target Outer**: Same as 'Caster Outer', but only creates in target outer scopes.

When a request's Actor field is 'Find':

* **Caster Outer**:Similar to 'Caster', but only looks in the containing scope. (i.e. a Medivac or a Bunker's scope, as opposed to the Marines inside it), if it exists.
* **Implicit**:

> The behavior is as follows. If the requesting actor was not created by an effect, the request looks in the requestor's owning scope. If the requestor was created by an effect, the request looks in the effect tree's scope and all of its 'friend' scopes (friend scopes are the scopes of units that are somehow connected to the effect, typically because they are its targets). It is possible to match against actors that are neither main actors, nor created by effects, but not actors created by other effects, unless they are missiles that are targets of an effect like a point defense laser. While complex sounding, this option usually 'just works' and returns the most expected actor.
>
>

* **Scope Caster**:Looks across all caster scopes in the effect tree.
* **Scope Effect**:Requires the requestor to have been created by an effect. Looks only in the effect tree scope itself.
* **Scope Missile**: Same as 'Caster', but only looks in missile scopes.
* **Scope Outer**: Same as 'Caster Outer', but only looks in source outer scopes.
* **Scope Source**: Same as 'Caster', but only looks in source scopes.
* **Scope Target**: Same as 'Caster', but only looks in target scopes.
* **Target Outer**: Same as 'Caster Outer', but only looks in target outer scopes.

#### Description

Controls whether the specified actor in the Subject field will be created or if it should already exist and be found in whatever scope is specified by the other parameters in the request.

#### RequestActor

* **Actor Find:** Find the specified actor in whatever scopes are specified by the other parameters in the request.
* **Create:** Create the specified actor in whatever scope is specified by the other parameters in the request.
* **Implicit:** Identical to the Find option. It is more common to find actors through requests than to create them.

#### Description

The effect whose scope is used in combination with the Scope field to determine valid subject.

#### Description

If we can't find an actor through this request, the requesting actor will be removed.

#### Bool

* If set to true, the requesting actor will die.