Skip to content
smartargs
VantageDocumentation

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.