Auras reference
The component that emits an aura and the asset that defines who it reaches, how far and how often. For how to use it, see Auras.
VtAuraEmitter
Component. Add it with Add Component → Vantage → Auras → VtAuraEmitter.
Per-unit aura emitter — runtime driver for a VtAuraDefinition. Every VtAuraDefinition.refreshIntervalSeconds seconds (and only on the authoritative side), it sweeps an OverlapSphere around the caster, filters candidates by faction + optional unit tags, and re-applies the aura’s buff to each match. Units in range stay refreshed; units leaving stop being refreshed and the buff lapses naturally on its own duration.
Inspector fields
| Field | Type | Default | Range | Description |
|---|---|---|---|---|
Definition (definition) |
VtAuraDefinition | None | The aura this emitter drives. Assigned at edit time on prefabs / via code at runtime. Changing the assignment after Awake is supported — the next tick uses the new definition. | |
Overlap Buffer Size (overlapBufferSize) |
int |
32 | ≥ 4 | Pre-allocated buffer size for OverlapSphereNonAlloc. Increase if your scenes have crowded radii (e.g. boss arenas with 50+ units in a 30m aura). Allocations only happen at startup; ticks are GC-free. |
Scripting API
| Member | Description |
|---|---|
VtAuraDefinition Definition { get; set; } |
The aura definition this emitter drives. Setting at runtime re-applies the mutual-exclusion check against siblings. |
void Tick(float deltaTime) |
Advance the emit cadence by deltaTime seconds and run an emit pass once VtAuraDefinition.refreshIntervalSeconds has accumulated. The only time input this component consumes; Update forwards Time.deltaTime. |
void Refresh() |
Force an immediate emit pass (bypasses cadence). Useful after teleport / respawn / when the consumer wants the aura to take effect instantly instead of waiting for the next interval. |
VtAuraDefinition
Asset. Create it with Create → Vantage → Auras → Aura Definition.
Designer-authored aura — a persistent emanating effect that re-applies a VtBuffDefinition to every eligible unit in radius on each emitter tick. An armor aura for nearby allies, a self-only damage reduction and a hex that slows and damages nearby enemies are all auras.
Inspector fields
Identity
| Field | Type | Default | Range | Description |
|---|---|---|---|---|
Id (id) |
string |
Empty | Stable string identifier for DB / network payloads. Convention: lowercase dotted, e.g. ‘aura.armor’, ‘aura.frost_hex’. | |
Display Name (displayName) |
string |
Empty | UI display name. E.g. ‘Armor Aura’, ‘Frost Hex’. | |
Description (description) |
string |
Empty | Tooltip / lore description. | |
Icon (icon) |
Sprite |
None | Optional inventory / aura-bar icon. |
Effect
| Field | Type | Default | Range | Description |
|---|---|---|---|---|
Buff To Apply (buffToApply) |
VtBuffDefinition | None | VtBuffDefinition this aura applies. RECOMMENDED: author the buff with stackingPolicy = Refresh so multiple casters of the same aura don’t double-stack on a target — they refresh a single instance, sharing one modifier source row. Different auras (different VtBuffDefinition refs) stack naturally as separate buff instances. |
Geometry
| Field | Type | Default | Range | Description |
|---|---|---|---|---|
Radius (radius) |
float |
8 | ≥ 0 | Effect radius in world units. Anything outside this sphere doesn’t get the buff. Typical melee aura 8–12; party aura 30+; touch aura 1.5. |
Target Mask (targetMask) |
LayerMask |
Everything | Layers considered by the OverlapSphere. Set to your unit-collider layers for performance — Everything works for prototyping but wastes work on scenery. |
Filters
| Field | Type | Default | Range | Description |
|---|---|---|---|---|
Target Filter (targetFilter) |
VtAuraTargetFilter | Allies |
Which units the aura considers eligible — by faction. | |
Required Tags (requiredTags) |
VtUnitTagDefinition[] | Empty | Required unit tags — candidate must have ALL of these to be affected. Empty = no requirement. Use case: a mana aura restricted to tag.caster (mages / priests). | |
Excluded Tags (excludedTags) |
VtUnitTagDefinition[] | Empty | Excluded unit tags — candidate is skipped if it has ANY of these. Empty = no exclusion. Use case: a plague aura damages every living enemy but ignores tag.construct. |
Cadence
| Field | Type | Default | Range | Description |
|---|---|---|---|---|
Refresh Interval Seconds (refreshIntervalSeconds) |
float |
0.25 | ≥ 0.05 | Seconds between emitter ticks. Each tick re-applies the buff to every eligible unit in radius — units in range stay refreshed, units leaving stop being refreshed and the buff fades naturally on its own duration. 0.25s suits most games; smaller = more responsive but more CPU. |
Buffer Multiplier (bufferMultiplier) |
float |
2.5 | ≥ 1.1 | Multiplier on refreshIntervalSeconds used as the buff’s applied duration. Should be > 1 so a unit that barely missed a tick still has the buff active until the next tick refreshes it. Default 2.5 means: tick=0.25s, duration=0.625s — buffs lapse cleanly within ~0.6s of leaving range. |
Caster-side exclusion
| Field | Type | Default | Range | Description |
|---|---|---|---|---|
Mutually Exclusive With (mutuallyExclusiveWith) |
VtAuraDefinition[] | Empty | Other auras that cannot be active simultaneously on the same caster. Enabling this aura disables any listed aura currently emitting on the caster, so a class can have several auras but only one active at a time. Symmetric — listing the relationship in either direction is enough. |
Scripting API
| Member | Description |
|---|---|
float AppliedBuffDuration { get; } |
Convenience: refreshIntervalSeconds * bufferMultiplier. The duration the emitter applies the buff with on each tick. |
Enums
VtAuraTargetFilter
Faction-based eligibility filter for VtAuraEmitter’s per-tick target sweep. Combined with optional unit-tag filtering on VtAuraDefinition.requiredTags / excludedTags for finer granularity (e.g. “buff allied beasts only”).
| Value | Description |
|---|---|
SelfOnly |
Buff applies only to the caster itself. Use case: defensive passives such as a bone shield or iron skin. |
Allies |
Same VtFaction as the caster, including the caster. Use case: party-wide regen aura. |
AlliesExceptSelf |
Same VtFaction as the caster, excluding the caster. Use case: leadership aura that buffs everyone but the leader. |
Enemies |
Different VtFaction from the caster, ignoring Neutral. Use case: hex aura that slows nearby enemies. |
AllUnits |
Every unit in radius regardless of faction (still excludes Neutral from being treated as either ally or enemy — they’re skipped). Use case: area-of-effect ground hazard, weather effect, plague aura. |
PartyMembers |
The emitter’s unit and every member of its party. A solo emitter affects only itself. Use case: a paladin aura that should not help strangers who merely share the faction. |