recursal/Fanatic-Fandom huggingface dataset:
Data/Validators/Location Vision

## Location Vision

### Description

Validates if a player has vision of the terrain or unit. What is considered as a visible terrain is unfoged. When the fog of war takes back the view, it is considered as "no vision". The validated fog edge of vision is very precise, has barely no range (think of an enemy unit entering the fog of war, at that precise point is where the location is visible or not).

### Exemple use

* Effect to target abilities can match perfectly with this validator. If this ability has enough range to aim at target location (not unit), and has the flag "Requires vision of target" enabled, this unit will move to target location to be able to cast it. In case we want to avoid that, we will use this validator to prevent the caster to move at location.

* In the case of a unit, but the range is weaker than its location, the caster will chase it. The validator will halt it at the moment the unit enters fog of war.

### Hint

There is a core file named **Has Vision Of Target**. Studying this validator plainly demonstrate how to use this type of validator.

## Field Categories

### Find

Should the player "have" vision of the location?

If yes, it means it must be "found true" (find enabled)

If not, it means it must be "found false" (find disabled)

### Location

Determines where the player must have vision. Be cautious to distinguish the terrain from units. In both care however, their validating state of vision will be determined by the fog of war.

### Player

Which player is validated. Can be found from target, caster, and can even validate if the owner is neutral/hostile.
Data/Attach Methods/Incoming

## Incoming

### Description

Seems like a very uncommon attach method to use, as it is use for the core actor "SOp Attach Internal Detonation". This attach method has no options or variance, it is the full version of what it can do, which is unclear. Based on the name, it is probably used to have the actor await its attachement query whenever it's availlable.
Data/Validators/Unit Inventory

## Unit Inventory

### Description

Seems to validate the enable state of the iventory, based on its tech requirements.

## Field Categories

### Other Unit

(Unsure) Compares to another unit which would be enabled or not?

### Require Enabled

Main field of this validator. When checked, the validator will only return true if the targeting inventory ability is enabled and has met its tech requirements.
Data/Attach Methods/Port Allocator

## Port Allocator

### Description

Seems to validate if the attach location is a container (bunker, transport). This attach method is used on all (unless modified) Container Attachement Query fields from actors. It coordinates the location of where the units using the actor can fire from.

## Field Categories

### Port Limit

(Unknown) The only core file using this attach method is named "AMPort Allocator Bunker" and has this field's value set to 3. This would probably mean that using this type of attach method is very unique, exclusive to rare situation when it's required. Additional testing could proove worthy to elaborate on what this attach method can do.
Data/Actors/FieldTypes

##### **CActor**

* Accepted Property Transfers
* Accepted Transfers
* Aliases
* Copy Source
* Editor Categories
* Filter
* Filter At Creation
* Filter Players
* Flags
* Fog Visibility
* Inherited Properties
* Inherit Type
* Macros
* Player Id Source
* Preload
* Sharing
* Host Supporter
* Terms
* Visibility Shape
* Visible To
* Visible To At Creation
* Visible To Players

##### **CActorBase**

* Events
* Remove
Data/Actors/Events/Effect

# Effect (Actor Event)

## Example Usage

* The creation of the blood model actor once a weapon impacts its target.

#### Sub Name

* Specifies the point during the effect, stated in the **Source Name**, which the action is triggered.
	+ Any: Triggers at any point during the effect (Can cause an action to be executed multiple times for one effect.)
	+ Abort Effect: (**Unknown**) Triggers when the missile cannot retarget and the target unit dies so the missile self destructs?
	+ Caster: (**Unknown**)
	+ Create: Triggers at the spawn of the effect.
	+ Expire: Triggers after an effects lifetime elapses.
	+ Impact: Triggers once the effect hits the target.
	+ Initial: Triggers after creation, but before any parts of the effect happen.
	+ Launch: Triggers on missile launch
	+ Return: Triggers on missile return (for tentacle like missiles)
	+ Source: (**Unknown**)
	+ Source Start: (**Unknown**)
	+ Source Stop: (**Unknown**)
	+ Start: Triggers when the effect begins
	+ Stop: Triggers when the effect is over
	+ Target: (**Unknown**)
	+ Target Start: (**Unknown**)
	+ Target Stop: (**Unknown**)

## Related

* Actors
* Effects
* Events

* Effects
* Ability
Data/Actors/Site Operation (Attachment)

## Site Operation (Attachment)

(Editor Screenshot) (need screenshot of Leviathan with and without tentacles)

### Description

A SOp used to determine which attachment point on a model a hosted model or effect is attached to

### Hint

* Avoid attachment methods where possible if you want your attachments to be exactly right.
* Use Attach Methods if you want to vary attachment between attachment points eg. with attack impact squibs
* Often used in combination with several other SOp types after this SOp
* Each model has its own set of attachment points with some types or numbers that other models lack, you can view attachment points in the Cutscenes Editor

## Example Usage

### Leviathan Tentacle A-D

The Leviathan tentacles use attachment SOps to attach them to Hardpoint attachment points on the Leviathan model with index numbers 0-3 so that when the main Leviathan unit actor creates them under it's events they appear attached to the right attachment points.

#### URL

As Leviathan comes with the campaign dependencies no URL is needed

### Tutorial: [Data] Working with Attachments (Beginner Difficulty)

A good clear tutorial that creates a bunker with an attached autoturret which has a shield attached to the turret. Attachment SOps are used to get the actors attached to the right hardpoints and Hosting is used to determine which model is attached to which.

#### URL

https://www.sc2mapster.com/forums/resources/tutorials/8926-data-working-with-attachments-beginner-difficulty/#posts

### Tutorial: [Data] Working with Hosting and Site Operations - The Uberlisk, Axis Alignment and More!

A tutorial inspired by the Blizzcon uberlisk with six tentacles attached to it's back. Shows how to create an Uberlisk using attachment SOps to determine the starting location of the attached spine crawlers before moving them using Site Opperation (Local Offset).

#### URL

https://www.sc2mapster.com/forums/resources/tutorials/4284-data-working-with-hosting-and-site-operations-the-uberlisk/#posts

## Fields Description

### Actor - Force Soft Attach

Allows the attachment to choose another attachment point of the same type should it be unable to occupy the designated one

### Actor - Hold Position

When enabled prevents the model from moving from the spot it is created
Not very useful except for structures

### Actor - Hold Rotation

When enabled prevents the model from rotating relative to the global axis
Not very useful for SOp (Attachment)

### Attachment - Attachment Query - Fallback

Unknown
Potentially used to relocate the attachment

### Attachment - Attachment Query - Methods

Uses Attachment Methods or chooses a hard point directly
Use Direct methods if possible

### Hosting - Host Supporter+

Used by events to refer to the supporter actor using the ::Supporter System reference

### Properties+

Determine what properties are inherited from the host unit

## Related

* Unit (Actor)
* Model (Actor)
* Attach Methods
Data/Items/Power Up

# Power Up

## Description

These items are automatically used when picked up.

* For example, Heros gets bonus stats when picking up tomes in Warcraft 3.
* Picking it up doesn't drag it to the inventory, this item cannot be held. Instead, It is instantly used. If no valid ability is set, or requirements are not met, the Item can simply not be picked up. The holder unit will keep force moving at it without any further action.

### Hint

The main idea of this item type lies in its **ability** field. Using it means triggering the ability, thus killing the powerup if the **Kill After Use** is enabled. In Warcraft 3, each Power Ups such as tomes of experience, tomes of agility trigger an Effect-Instant ability that gives an attribute behavior (or other effects) to the Hero, boosting its stats. While uncommon, an Effect-Target can also be used, but you won't be able to target with it since it's insta cast. The targetted effect will either fail if it can't find a valid target location or will cast on spot. It is doubtful that any other ability or at least the ones with multiple arrays can work.

## Field Categories

### (None): Abil Flags

* **Transient:** Allow the use of the ability without interrupting the order queue.

### (None): Caster Filters

Filters required for the holding unit attempting to grab this power up.

### (None): Kill After Use

Destroys the item if used. Highly suggested for these types of items.

* Keep in mind that this item can never be picked up in the inventory. Touching it will generate the following events:
	1. The Power Up will remain on the floor and generate its effect. If no abilities could trigger (or failed requirement), it stays on floor and remains unusable.
	2. If used, It will still be pickable, but not before the cooldown of its used ability has refreshed.
	3. Will remain forever unless killed by other means over its invulnerable state.

### Basic: Ability

Grabbing this item casts this ability on spot.

* Counts as a used item.
* As popular it can be to use an Effect - Instant ability, take note that **Pre-Effect Behavior** and **Post-Effect Behavior** fields do not work. It is essential to use an Apply Behavior effect (its target location can be left to target) on the ability's casted effect.
* If you want to add an attribute point to your unit, let's say 1, you have to use the Apply Behavior effect **flags** field, enabling all flags except duration. The **Behavior Count** field indicates how many attributes are to be added in this case.

### Basic: Toggled Face

When an item is toggled, it will use this face instead.  An example would be a CItemAbil that uses a CAbilBehavior.
Data/Validators/Player Requirement

## Player Requirement

### Description

Validates on behalf of a Requirement. Probably one of the most interesting validator to use for actors, or for setting AI. This validator has a very large extent of use. The best way to exploit this validator, is to know what a requirement can do, and to think that this validator can use it as its strict condition.

### Exemple Use

* If an actor should play an animation, or add a model, or prevent from creating, it could validates on this type of validator, that is linked to a requirement verifying an Upgrade.
* This could Mimic a Unit Type validator, or even a Unit Compare Behavior Count by using a requirement that stipulates that X unit/behavior is completed at unit. This includes aliases as well.
* A requirement can calculate a number of upgrades. This validator can use this information.
* Can be used on Behaviors as additional requirements (in the **Validator - Disable Field**), in pair of the actual ones already set.

## Field Categories

### Find

Inverts/Negate the logic of the value (requirement).It is simpler to enable it.

For exemple, if the requirement requires 1 Barracks completed, and that Barracks is up, setting this field to disable will mean that this Barracks should be not be completed and will return this validator as false.

### Other Player

(Unsure) If another player's has to meet the condition this validator, then both players will be validated.

### Player

Main Player validated. Often left as Player Origin, for most case.

* This field also offers "Creator". This is particularly useful when the unit has a mind control effect affecting it. It relates the ownership of the creator instead of just focusing on the origin player of the caster unit.

### Value

Value of the requirement, found in the Requirements data table.

### Which Unit

In rare cases this field should be something else than caster. But in some particular case, it can come essential to use other location, such as Target.

Ex: An ability targets a unit and this unit must not be an egg. Use Tech Alias field on every egg unit and use it on a requirement that goes: Alias\_EggUnit completed at unit. Then use this validator that (Find disabled) can be inserted in the abilitie's initial effect. There you have it. It is also wise to use the premade validator (by Blizzard) named "Is Not Egg Unit". That validator is a combine with a tons of Unit Type validators inside, which represents a lot of spam, and may lead the editor to forget to add new eggs units if new units were to be brought to the game. Using such a validator simplifies the work by a lot.
Data/Validators/Unit Behavior Stack Alias

## Unit Behavior Stack Alias

### Description

This allows users to count behavior stacks by StackAlias. It will count all behaviors on the unit with the given StackAlias and has the option to count only enabled behaviors.

* Take note that even if the behavior is disabled, it is still validated for it's presence/or not at all on the unit.

## Field Categories

### Find

Enabled means it must find the quantity of the behavior alias indicated from this validator.

### Other Unit

If used, compares the stack quantity of the **Unit** to this unit location.
Data/Effects/Last Target

## Last Target

### Description

Traces the last location of where the unit has accomplished an action, and creates an effect at its target unit/point.

## Field Categories

### (None): Effect

Effect that will be generated at the last target of the unit. In other words, the **Which Unit** is the launch point and this effect field is the impact point.

### (None): Last Target Type

Select the last target type of ability that is **currently** used by the unit. This serves as a filter of which type of ability has to be currently validated.

Take note that using any other abilities beyond this point will make this effect null, and it won't be able to trace a last target. For example, if a SCV is commanded to move to a point, then this point is determined as the last target and will generate an effect on this point (logic wants to use a point location on next effect in that case). But if the SCV arrives to destination, it "Stops". This accounts as a new ability used, which is not supported by this effect. At that point, there is no last target.

Testing has shown a weird behavior of this effect, when using the automatic type. A SCV was ordered to move to a point, but then in mid route, ordered to gather mineral. The last target effect generated an effect on its last unaccomplished move point. However, any other abilities than gather, attack or move nullifies this last target. This leads to think that this effect is oddly configured, perhaps not fully functional, as the actual gather type doesn't function on its own anyway.

* **Attack****:** The unit used attack ability on last target (this doesn't require the unit to be actually firing its weapon).
* **Automatic:** The unit used one of the 3 other types last target ability from this field, will be chosen/accepted accordingly.
* **Gather:** The unit used gather ability on last target. Tests have shown that this type doesn't work and can't trace the resource properly. It is probable that the type's name is wrong, as the real ability's name is not "Gather", but "Harvest".
* **Move:** The last unit used move (only the move command, other commands are not supported) on last target point. It does not support "move to unit" or follow functionalities. Only points.

### (None): Which Unit

Which location of unit are we tracing its last target from. Not to confuse with which unit was the last target. Instead, if seeks the unit that accomplishes the preset ability.

#### Effect

Relative parent effect from which the value relates.

#### Value

Location of the unit that is used as the launch point of the the action accomplished on its last target.
Data/Actors/ActorReal

## ActorReal

* Provides **Base** Real Value and a **Range** Value between 0 and the given Range Value that will be added to the Base value.
* So, if base value is 5.0 and range value is 3.0, random real between 0 and 3.0 will be added to the base 5.0
* This is used to give actors degree of randomness in various places
Data/Actors/Site

## Site

### Description

Site actors act as a saved location that other actors can reference, usually from Host - Launch and / or Host - Impact fields. They are commonly used in Beam (Simple) and Action actors to determine the start and end point of a beam or projectile path. There are three types of Site actors, each with their own unique properties. The Site type of site actor is a stationary point that needs to be created on a model attachment point. The Site Operation (Local Offset) has no effect on this type of actor.

## Example Usage

### Colossus Attack

The colossus attack is a commonly referenced attack when it comes to site actors because of its uniqueness and complexity.

### Phoenix - Graviton Beam

This is an example of an ability that uses site actors.

### Tutorial: OneTwoSC's Shotgun Weapon

This is a tutorial explaining how to make a shotgun-style weapon which involves using site actors. A good basic introduction to site actors.

#### URL

https://www.sc2mapster.com/forums/resources/tutorials/179462-video-text-shotgun-weapon-tutorial

### Tutorial: ProzsaicMuze Attachment Tutorials

These tutorials are more geared towards attachments, but attachments are very related to site actors and site operations, and the tutorials do include creating some site actors themselves.

#### URL

Beginner: https://www.sc2mapster.com/forums/resources/tutorials/179664-data-working-with-attachments-beginner-difficulty
Advanced: https://www.sc2mapster.com/forums/resources/tutorials/179142-data-the-uberlisk

## Related

* Action
* Beam (Simple)
Data/Validators/Player Alliance

## Player Alliance

### Description

Compares the relation/behavior from 2 allied players. This relation is based on particular qualities, listed in the value section.

### Exemple Use

One could wish to have an effect work ot not in case an ally deceides to withdraw the control privilege to the validated player. While the listed values are not fully documented, it can be used in certain team situations.

## Field Categories

### Allied Player

Player that is validated. It doesn't seem to matter much if this field is swapped with **Other Player** field, as long as the locations makes sense.

### Find

Validates if the listed **Value** should be true or not.

### Other Player

Player that is validated. It doesn't seem to matter much if this field is swapped with **Allied Player** field, as long as the locations makes sense.

### Player

Unknown. Can be set to None without affecting the check between Allied Player and Other Player.

### Result - No Player

If the player has left the game, the error message that will display.

### Value

List of validated values that resume the relation between the validated players. This field is mainly the point of the comparaison.
Data/Actors/PhysicsImpactData

# PhysicsImpactData

## Description

Physics impact data determines how a model responds to a Physics Impact Customize message.

## Field Descriptions

#### Description

Actor Link that will be used to host the model

#### Description

Actor Link that will be used to host the sound

#### Description

Combined with AutoVolumeRangeMax and AutoVolumeRangeMin fields to determine at what volume should the sound should be played at. Based on our selected Impact Range Type.

#### PhysicsImpactRangeType

* **Collision Area:** Filter a physics impact by the surface area between the two collision participants at the time of collision.
* **Don't Care:** (default value)Specifies that the data is not interested in any additional kinds of physics impact classifications.
* **Impulse:** Filter a physics impact by strength of the impulse transmitted by the collision.
* **Relative Approach Speed:** Filter a physics impact by the combined approach speed between the two collision participants.

#### Notes

* Blizzard ever only uses 'Don't Care' or 'Impulse' for this field.
* (unsure)AutoVolumeRangeMin and AutoVolumeRangeMax are the Collision, Impulse, Approach speed, not the volume values (I'm assuming it linearly clamps the Sound Actor volume based on the RangeType (e.g. ragdoll impacts ground at '50' Impulse strength, the Min is 0 and Max 100; the sound would be played at 0.5 Actor volume)

#### Description

Generic label to group and identify different impacts in actor messages.

#### Description

Link to the model that will used for this impact.

#### Description

(Unsure) Allows to throttle this impact type if there is already a same type within this distance?

### OccuranceThrottlingDistanceTimeout

Name:Occurance Throttling Distance Timeout

#### Description

(Unsure) Throttles how often this impact type can occur.?

#### Description

Site operations performed on the Sound or Model actors created by this impact

#### SiteOpsData

* Hold Position
* Hold Rotation
* Operations

#### Description

Link to the sound that will used for this impact.
Data/Skins

## Skins

### Description

Skins are limited methods of catalog replacement. They are used for the different skins for melee, and are applied via the Apply Player Skin triggers. They can also be used for several different swaps, with varying levels of effect. In addition, they can have effects like Upgrades as well.

### Hints

* They can be edited to replace more than one catalog at a time via XML.
* The non-model fields that are known to be able to be replaced are Unit, Behavior, Upgrade, and Ability.
* Unit replacements do not work on Spawn Behaviors, but work with Train, Arm Magazine, and Spawn Unit.

## Example Usage

### Skins

Make a new skin and use XML to swap the various model data on the actor with the new model data you want to use.

### Unit Swaps

Make a new skin and, in wizard mode, select Unit from the Replacements - Catalog field, then on the first box pick the unit you wish to switch out and in the second box pick the unit you wish to switch it with.

## Fields

### Replacements - Catalog

The data type the skin will be replacing.

### Replacements - From

What data value will be replaced in various fields

### Replacements - To

What data value will replace the data value in Replacements - From.

### Effect Array - Operation

How the Effect Array - Value will be applied

### Effect Array - Value

The amount that Effect Array - Data Reference will be adjusted by
Data/Score Values

## Score Value Types

* Combine
* Custom
* Score Value Constant
* Standard

## Legacy page (placeholder)

All kind of statistic data, you can trace.
You can show APM as Graph after each match, if you compine Score Values for APM with Score Result

## Category

### Value

* This is most important field. Deffine the Value you want to trace
* APM
* UncontestedCombatTime
* IdleProductionTime
* IdleWorkerTime
* UnitKillsPeakCount
* UnitsTotalCount
* UnitsKilledCount
* UnitsLostCount
* UnitsFriendlyFireCount
* UnitsSalvagedCount
* UnitsCanceledCount
* UnitsPeakCount
* UnitsInProgressCount
* UnitsActiveCount
* UnitsStartCount
* UnitsTotalValue
* UnitsKilledValue
* UnitsLostValue
* UnitsPeakValue
* StructuresTotalCount
* StructuresKilledCount
* StructuresLostCount
* StructuresFriendlyFireCount
* StructuresSalvagedCount
* StructuresCanceledCount
* StructuresPeakCount
* StructuresActiveCount
* StructuresStartCount
* StructuresTotalValue
* StructuresKilledValue
* StructuresLostValue
* StructuresPeakValue
* WorkersTotalCount
* WorkersLostCount
* WeaponTechnologyCount
* ArmorTechnologyCount
* MiscTechnologyCount
* WeaponTechnologyValue
* ArmorTechnologyValue
* MiscTechnologyValue
* TechnologyPercent
* FoodMade
* FoodUsed
* MineralsCurrent
* VespeneCurrent
* MineralsCollected
* VespeneCollected
* MineralsSpent
* VespeneSpent
* MineralsReceived
* VespeneReceived
* MineralsDonated
* VespeneDonated
* MineralsCollectionRate
* VespeneCollectionRate
* MineralsFloatAverage
* VespeneFloatAverage
* MineralsUsedCurrentArmy
* VespeneUsedCurrentArmy
* MineralsKilledArmy
* VespeneKilledArmy
* MineralsLostNone
* VespeneLostNone
* MineralsLostArmy
* VespeneLostArmy
* MineralsLostEconomy
* VespeneLostEconomy
* MineralsLostTechnology
* VespeneLostTechnology
* MineralsFriendlyFireNone
* VespeneFriendlyFireNone
* MineralsFriendlyFireArmy
* VespeneFriendlyFireArmy
* MineralsFriendlyFireEconomy
* VespeneFriendlyFireEconomy
* MineralsFriendlyFireTechnology
* VespeneFriendlyFireTechnology
* LifeDamageDealtTotal
* ShieldsDamageDealtTotal
* LifeDamageTakenTotal
* ShieldsDamageTakenTotal
* LifeHealedTotal
* ShieldsHealedTotal
* LifeSpentTotal
* ShieldsSpentTotal
* EnergySpentTotal

### Report

* **Final:** report total count
* **Average:** average value, useful for replays
* **Sample:** snapshot value in the last second

### Sort

How to sort this values at the Score Screen
Ascending
Descending

### ?

Above field exist also in combine, but you can have more then 1 value. define the return type, add/substract the standard Score Values.

### Operation

* **Subtract:**
* **Add:**
Data/Effects/Enum Tracked Units

# Enum Tracked Units

## Description

Perhaps like Iterate effects, attempts to gather the units held in the specified tracker unit pool and launch an effect at them.

## Field Categories

### (None): Behavior Link

Specifies a specific Unit Tracker Behavior to get the tracked unit from.

### (None): Distribut Damage (Mispelled by Blizzard)

If a damage effect should follow in the child effect, enabling this field will split damage equally to each Tracked unit found from this effect.

* Used by the Spirit Link ability in Warcraft 3. As one unit gets damaged, its buff comes with a damage response from which the handled value leads to this effect, then to a dummy damage effect (with 0 damage value).
* In order for this field to work, based on the example above, it seems that 2 things are mainly required: The buff behavior damage response must have the Handled Value set to "Absorbed", and the Modify Fraction must be changed (or flat fields, untested). In this view, setting fraction to 0 means that the main unit getting damage would get 0 damage, while its tracked units get 100% damage split among them. On the other hand, having 1 damage fraction (default) means that no damage will be distributed. You can also distribute a fully split damage with the damage response unit, if the fraction is set to 0 (modify minimum checked) while the damage response unit is ALSO tracked by itself.

### (None): Effect

Which effect is to be launched on Tracked unit that will be chosen from this effect.

* The matching tracked unit found by this effect will be considered as "target" location of the child effect. Putting validators in this very next effect can validate the result of this very enum tracked unit effect.

### (None): Tracked Unit Filters

Filters to get particular units from the tracked units.

### (None): Tracker Unit

Specific unit location where the get the tracked unit list from (the owner of the tracking behavior).
Data/Models

Properties associated with the 3D model artwork used by the game which is used primarily by the Actors data type

### Hint

* Contain fields referenced by the Texture Select By Id event action and Model Event event for actors

## Example Usage

### Marine

The model referencing the 3D artwork for the Marine which is used by the Marine and ChangelingMarine (Unnamed) Unit actors. Contains fields with information linking the **Stand Victory Variation 00 and 01** animations to the **SquibStart/Stop** custom model events which the Marine Unit actor references using the Model Event event for the creation of the **MarineCheerSquib**s.

### URL

As Marines and their model are already in the editor no URL is needed

### Assimilator

The model referencing the 3D artwork for the Assimilator which is used by the Assimilator Unit actor. The campaign version of the assimilator has fields which make the **diffuse** and **specular** textures of the model able to be changed when the Dark Protoss Upgrade is researched by using the Texture Select By Id actor event action to swap the textures with **AssimilatorDarkDiffuse (Unnamed)** and **AssimilatorDarkSpecular (Unnamed)** to give it a greener colour scheme.

### URL

As the Assimilator, it's model and the alternative textures are already in the campaign dependencies, no URL is needed

### Char Combs

The model referencing the 3D artwork for the Char Combs variations which is used by the Char Combs Doodad actor. Instead of referencing a single model file, this model data type references a whole folder containing several (6) variations of the Char Combs

### URL

As the Char Combs doodad and their model are already in the editor no URL is needed

### Plant Mix Agria

The model referencing the 3D artwork for the Grass layer used by the **Generate Foliage** button in the terrain editor when the Agria terrain type from Terrain Types is used. How the terrain texture the foliage models are linked to is set under the **Doodads - Model** field of the Terrain Textures data type

### URL

As the Agria Foliage and their models are already in the editor no URL is needed

## Model: Sub Types (Classes)

* Generic
* Foliage
Data/Validators/Unit Compare Attack Priority

### Hint

There's a core field named Threatens, which seems to evoke that the unit attacked by caster is a considered as a threat. This would mean that the validator will only work if the target has the "Threat" flag activated on its Unit data (or from a Buff Behavior)

## Field Categories

### Attacker Alternate Type

(Unknown) Should it be a secondary unit from which the Attack can be morphed into?

### Flags

Particular situations to be evaluated

* Is Threat: **Unit** value contains a unit with the "Threat" quality
* In Range: (Unsure) Ressembles to the Unit in Weapon Range Validator, probably validates if the **Unit** is in range of the attacker's weapon?
* In Range: Current Target: The **Unit** is currently in range and attacked by the attacker.

### Other Unit

Adds a third unit to validation. Unsure how to use this.

### Value

(Unsure) Probably the numeric value of the target's Attack Target Prioriry on the unit data field.
Data/Validators/Unit Order

Availability is the key:

* Requirements returning false or
* Ability disabling (from a buff behavior or triggers)
* Not enough resources or vital type
* Validators. This can be used wisely for build abilities, in which you can put the validators in the info array. Be aware that these validators must precisly deny the ability. For example, if using a validator that prevents from building a supply depot on current spot of the caster, make sure that the validator indicates the caster point as well, not "None" which could be any place at all.
* Power Fields can be accounted for placement availability. It would seem however that creep isn't verified. This might be a lack of content.

## Field Categories

### (None): Check State Only

When checked, this validator will only evaluate if the ability command is disabled for the unit, regardless if the command can be executed due to reasons like “not enough mana”.

### (None): Unit Order Command Flags

Specific flag regarding the command.

* This can be used to check the Auto-Cast state of an ability. It is just oddly configured: If an auto-cast should be on, only check Set Auto-Cast. If it should be off, check Set Auto-Cast AND Set Auto-Cast On.

### Target: Target

Potential target of the order. Can be ignored to scope on the Order itself.

### Validator: Ability Command

The Ability's command value. Usually contains "Execute" (0) and "Cancel" (1). Other abilities like Move have a greater variety of commands.

### Validator: Other Unit

Unit from which the compared order is validated.
Data/Accumulators/Veterancy Level

## Veterancy Level

### Description

Useful to create formulas based on current unit level. Unit is specified in **Unit Source** field. It seems that this accumulator is identical to Unit Level accumulator?

## Field Catagories

### Amount

Specify the exact accumulator amount for each level. Unlike ability levels, unit levels start with 0. This is important to keep in mind especially if using the formula that automatically generates the values. If we do not manually set these values for some level, then for that level and all after the values will be generated based on the following formular:

**Current Amount = Level Factor \* Current Level + Previous Value Factor \* Previous Level Amount + Bonus Per Level**

### Level Factor

Constant multiplied with the current unit level (**not** amount).

### Previous Value Factor

Constant multiplied with previous level amount (doesn't matter if auto generated or manually set).

### Bonus Per Level

Amount multiplied by the cumulative amount of levels of the unit.
Data/Validators/Unit In Weapon Range

## Unit In Weapon Range

### Description

As the name states, verifies if the **Unit** has the **Other Unit** in its weapon's range (is at least in it, not necessarly attacked by it)

### Exemple Use

* In some situation, it is good to identify if a unit to be able to cast an ability using its weapon. The ability should validate the weapon in range. The moment where this comes handy if if the weapon gets its range updated, then this validator will always keep a track of it, whatever range it got.

* Sadly, there seem not be any **Find** field to negate this. However, a Combine effect can negate it.

### Negater Workaround

At first sight, you can't negate this validator, because the Unit Location conflicts with itself, thinking that the caster is not in its own range anymore. There is an alternate method:

```
 <CValidatorLocationEnumArea id="TargetNotInWeaponRange">
 <AreaArray Validator="TargetInWeaponRange"/>
 <Compare value="Eq"/>
 <WhichLocation Value="TargetUnit"/>
 </CValidatorLocationEnumArea>

```
Create an Enumerate Area validator, and then, set the area to 0 range, with *TargetInWeaponRange* validator (from blizzard, or you can make your own). Set Location to Target Unit and the Operator to Equal. There you have it.

Translated: this validator will determine that in 0 range from itself (target unit location), there is 0 of it in Caster's weapon range. This would be false with a Point location, because the validator would assume that the target unit is never exactly at a perfect 0.00000000 range from the point location and still, it does not render any value considering that there is 0 search radius between the point location and the unit to be "not found".

* You may also use Unit Compare Order Target Range, just the same way Zealot's charge uses "*Charge Minimum Trigger Distance*" (validator). Using this, but with a compare going to "Equal", it may be possible to do. Take note that this validator has the **Other Unit** field set to Target, which in this case does indicate the target that should be attacked (as stated in Validators, **Other Unit** is not supposed to designate a target for the **Unit** field).

## Field Categories

### Other Unit

Which unit has to be in the weapon's range. This is not the owner of the weapon.

### Unit

Which unit has the weapon, and has to have the **Other Unit** in its range.
Data/Behaviors/Click Response

## Click Response

(Editor Screenshot) need picture of critter blowing up

### Description

Applies an effect when the unit is left clicked (not sure about right) enough times above a certain frequency of clicking.

### Hint

* You can set which players can activate the effect giving the possiblity of players getting a different response depending on if they are allied/enemy to the owning player.
* Requires the **Cannot Be Clicked** flag to be disabled under the **Unit: Flags** field of the Units data type

## Example Usage

### Critter Explode

If a player clicks a critter 30 times with under half a second between clicks, then the critter explodes.

## Fields Description

### Behavior - Count

* Number of clicks needed to cause the effect
* Not sure if right clicks count

### Behavior - Count Delay

* How quckly the next click has to be made before the number of clicks reset and the Reset Effect is used

### Behavior - Count Effect

* The effect performed when the unit has been clicked enough

### Behavior - Relationship

* What the clicking player must be in relation to the owner of the unit with this behavior
* Can be used to make a unit respond differently depending on who clicks it

### Behavior - Requirements

* The requirements that have to be met to enable the behavior

### Effect - Reset Effect

* When the Behavior - Count Delay timer expires this is the effect that is used

### Effect - Reset Delay

* The time taken after the Behavior - Count Delay timer expires before the Reset Effect is used
Data/Effects/Use Magazine

## Use Magazine

(Editor Screenshot) need screenshot of carrier launching interceptors

### Description

Releases units created through the Arm Magazine ability towards a target point or unit. If the target is non existent, the ammo unit returns to the caster. Magazine count is consumed only when the ammo unit dies.

## Example Usage

### Carrier - Launch Interceptor (Magazine)

Launches Interceptors previously created by the Carrier to attack a target.

#### URL

As the Carrier and Interceptor are already present in the editor no URl is needed

### Example Name 2

(Description from a global overview, tell us the relationship of combined data objects to this object)

#### URL

(URL to the real example, because we could use 1 example for 5 different objects)

## Fields Description

### Effect - Response Flags

* Determines if units hit by the effect show the acquire/flee response

### Effect - Validators

* Validators that must return true for the effect to be used

### Unit: Ammo Unit

* The unit type created by the Arm Magazine ability to launch.
Data/Attach Methods/Volumes Weighted

## Volumes Weighted

### Description

(Unsure) As it is used on actor's impact attachement query as a core file, this attach method doesn't seem to do much else than evaluating the proximity of a certain value based volume (model?)

## Field Categories

### Proximity Factor (Far)

(Unsure) Multiplied numeric value of how far the volume can be from the attachment location.

### Proximity Factor (Near)

(Unsure) Multiplied numeric value of how close the volume can be from the attachment location.

### Volume Factor

(Unsure) The multiplied numeric value of the volume's size.
Data/Attach Methods/Node Occupancy

## Node Occupancy

### Description

Validates the possibility to use the attachement point based on the used/unused state of the attachement point. Can combine with Filter attach method. The attachement point that is verified has to be specified from another attach method.

### Exemple Use

Terran structures use this attach method to avoid flames spreading at attachement points that are already occupied by fire (since the Terran Building Fire spreads randomly on many damage attachement points).

## Field Categories

### Logic

* Prefer Any:(unsure) runs 1 test of having model presence of the specified/unspecified model on the attachement point, then accepts it if no other points returned.
* Prefer None:(unsure) runs 1 test of having no model presence of the specified/unspecified model on the attachement point, then accepts it if no other points returned.
* Require Any: strictly requires the presence of the specified/unspecified model on the attachement point.
* Require None: strictly forbides the presence of the specified/unspecified model on the attachement point.

### Targets

Simply the model data. Specify a model to be validated, or leave blank to have any model verified at the node (attachement point).
Data/Items/Ability

## Ability

### Description

Grants a specified ability to the holding unit. Can left click the item to use it. If no ability is specified the inventory slot vanishes (confirmation needed since patches).

### Hint

* Seems to only be able to use Effect - Instant and Effect - Target effects when held directly by the Inventory ability.
* Using any other abilities makes the slot holding the item in the Inventory ability vanish (confirmation needed since patches)

#### Build ability Item Bug

Putting an item with a build ability on a main inventory ability works fine, however, collecting/moving/having it inside a container item doesn't display its face icon (nor can be clicked), resulting in invisible filled spaces. To solve this, one can use an Effect-Target ability instead, the same way "Build Auto-Turret" ability from Raven is made (placeholder/place unit defined on the ability, start with create unit effect directed at point location).

## Fields Description

### (None): Abil Flags

* **Transient:** Using the ability won't prevent the holding unit from moving.

### Basic: Ability

* The ability cast by the item when left clicked in the inventory
* Needs to have one for the item unit to show in the inventory
* The full list of possible abilities isn't done yet, but as far as tested, Effect - Instant, Effect - Target, Behavior and Build ability work (Build is a bit tricky to set up however). Abilities that don't work will bug the Inventory slot when picking up the Item, hiding from UI.

### Basic: Toggled Face

When an item is toggled, it will use this face instead. An example would be a CItemAbil that uses a CAbilBehavior.

* The button from the Buttons data type used by the item when the ability is toggled

## Related

* Abilities
* Behaviors
* Buttons
* Item Classes
* Item Containers
* Requirements
* Turrets
* Units
* Weapons
* Effect - Instant
* Effect - Target
* Inventory
Data/Attach Methods

## Attach Methods

### Overview

Attachment Methods (AMs) are used for the hosting of actors on non-specific model attachment points. The most common use for attachment methods is for varying the launch and impact points of Action actor visuals used for attacks and unit damage state related Squib actors that are created on random parts of units.

* Take note that the majority of all the attach methods here mostly require the presence of the **Filter** one. This one is used to specify the attachement points to work with. In any other cases, the other attach method can still rend a result, but it will rarely be adequate, as models possesse a great variety of attachement points containing the same keywords.
* A lot of those attach methods are exclusive to core files. Any beginner that wishes to go with the simplest/popular ones should look upon: Filter, Pattern and Random.

Details of what each type of Attachment Method does are covered in the following pages:

### Attach Method Types

* Arc Test
* Attach Type
* Best Match
* Filter
* Incoming
* Least Deflection
* Node Occupancy
* Node Occupancy 2
* Numeric Field
* Pattern
* Port Allocator
* Proximity
* Random
* Reduction
* Volume Requery
* Volume Targets
* Volumes Weighted
Community

SC2Mapster is a community for map makers and enthusiasts. We want to provide the best solution for those who want to create, publish, and play maps. We operate strictly within Blizzard's Terms of Service. You can click the links to the left to visit the main website. This wiki is part of the same Sc2mapster community, and is intended to be a great source of information for any mapper. Using this wiki requires a curse account, which works across all curse Community & forum sites, including Sc2mapster.

## Activities

### Chat

The online IRC chat is almost always populated, with the highest amount of activity during:

* European evening hours
* American day hours

### Forum

The forums are where tutorials and longer discussions are posted.

### Battle.net groups

You can find SC2Mapster groups at the EU and US servers.

 These are direct links to the groups and can be entered in the address bar of any web browser if you've Starcraft 2 installed.

 EU: starcraft://group/2/2380

 US: starcraft://group/1/98

### Weekly Terrain Exercises

For terrain enthusiasts the WTE offers a reoccuring challenge.
Main forum thread

### Custom campaign initiative

For campaign makers, the custom campaign initiative provides support and a place to gather content. Single player campaigns with map linking have to be played offline, which makes it neccessary to download them from the web.
Project homepage
Data/Accumulators/Distance Accumulator

## Distance Accumulator

### Description

Checks the distance between 2 points and adds/multiply the **Scale** (Constant of this accumulator).

* On its own, this accumulator can only increase/decrease (with negative Max Accumulation field) a value by the farther distance, and not the opposite (ex: you can't have a greater amount for closer distance else than the default value of the modified amount). Ex: You have a shotgun and at the farthest distance it does 30 damage; Now you want it to deal way more damage if the target unit is at close range... it is impossible. However, it might be possible with an arithmetic accumulator multiplying this accumulator in negative, inverting the formulae.

## Field Categories

### (None): End Location

The impact point of where the **Start location** compares to.

### (None): Scale

The constant. Greater amount (or lesser) imputed here will greatly change the variation provided by this accumulator.

### (None): Start Location

The launch point of there **End location** compares to.
Data/Effects/Apply Kinetic

## Apply Kinetic

### Description

Applies a state on a unit, which causes it to slip or rotate in a chosen direction, rotation, or speed.

### Hint

The list of Kinetics can found in advanced game data. One has to use the **View Raw Data** button of the editor to edit some of its fields.

### Exemple Usage

* Creating a dummy unit which would orbit around another one could be set with a Kinetic.

* Set the pattern of the Kinectic from the Kinetic data table

### URL

https://www.youtube.com/watch?v=7ENQvfvsVuY
Data/Abilities/Redirect/Instant

### Hint

Mostly used on transports (Bunkers). It is also convenient to link instant abilities with instant effects (such as stop) rather than **Effect-Target** abilities, which would require a target.

## Example Usage

- Bunkers have the Stimpack ability. Since it is not desired to run the stimpack effect on the bunker itself, but on its loaded units, the Redirect - Instant apply the effect of the ability to the units inside.

## Fields Description

### Ability - Ability

Specifies which ability is redirected. If the specified ability matches with the same abilitiy owned by the units inside, their ability will activate.

### Ability - Command Buttons

Select the default button and requirements.

## Related

* Link1
* Link2