Skip to content
smartargs
VantageDocumentation

Ticking reference

The optional tick driver, the tick manager you can call from your own loop, and the interface your own components implement to tick with the simulation. For how to use it, see Ticking.

VtTickDriver

Component. Add it with Add Component → Vantage → Core → VtTickDriver.

Scene-placed pump for VtTickManager. One Update here replaces the per-component Update of every registered simulation driver (stats, buffs, abilities, threat, engagement, auras, AI, crafting, resource nodes, spawners, quest logs, projectiles, ground AoE), advancing them in VtTickGroup order with one shared deltaTime.

Inspector fields

Field Type Default Range Description
Simulation Time Scale (simulationTimeScale) float 1 ≥ 0 Multiplier applied to Time.deltaTime before ticking the simulation. 1 = real time. 0 pauses every registered system without touching Time.timeScale (UI, camera, and combat text keep animating).

Scripting API

Member Description
bool IsActiveDriver { get; } True when this instance is the one pumping the scheduler (a second driver in the scene reports false and does nothing).

IVtTickable

Interface. Implemented by VtAbilityRotation, VtAbilityScheduler, VtAuraEmitter, VtBuffScheduler, VtBuildSite, VtCombatEngagement, VtCompanionAi, VtEncounter, VtGroundAoeAnchor, VtHostileAi, VtMobSpawner, VtPredictedMovementExecutor, VtProjectileMover, VtRegenScheduler, VtResourceNode, VtRoaming, VtSummon, VtThreatTable, VtUnitAbilities, VtUnitBuffs, VtUnitCrafter, VtUnitOrders, VtUnitQuestLog, VtUnitRespawn, VtUnitStats, VtVendor, VtWorldClock, VtWorldClockScheduler, VtWorldItem.

Something VtTickManager advances. Register it with VtTickManager.Register in OnEnable, unregister it in OnDisable, and forward Update to Tick unless VtTickManager.IsDriven is true, so it runs with and without a VtTickDriver.

Scripting API

Member Description
void Tick(float deltaTime) Advance time-based state by deltaTime seconds. Called once per step by VtTickManager, or from the component’s own Update when no driver runs.

VtTickManager

Static class.

The one registry every simulation component ticks through. With a VtTickDriver in the scene, the driver advances every registered component once per frame in VtTickGroup order; without one, each component ticks itself from its own Update. Servers and replays call Tick directly.

Scripting API

Member Description
static VtTickScheduler Scheduler { get; } The live scheduler, for diagnostics such as counting registered components. Use Register, Unregister and Tick for everything else.
static bool IsDriven { get; } True while a VtTickDriver is enabled and pumping the scheduler. Components read this at the top of Update and return early when true so nothing ticks twice.
static void Register(IVtTickable tickable, VtTickGroup group) Register a component for central ticking. Safe to call from OnEnable regardless of whether a driver exists yet.
static void Unregister(IVtTickable tickable) Remove a component. Safe to call from OnDisable / OnDestroy.
static void Tick(float deltaTime) Advance every registered component by deltaTime seconds, group by group. VtTickDriver calls it once per frame; call it yourself from a server loop or a replay.

VtTickGroup

Enum.

The group a tickable runs in. Groups run in the order below, and within a group tickables run in registration order, so state one system produces is visible to the next in the same step.

Value Description
Stats Runs first: combat timers and resource regeneration.
Auras Aura emitters apply and refresh their buffs.
Buffs Buff ticks such as damage and healing over time, and expiry.
Abilities Cooldowns, cast bars, channels and auto-attacks.
Threat Threat decay, after this step’s damage has landed.
Movement Networked movement: a predicting client’s corrections and other clients following the server’s position.
Engagement Chasing the current target.
Ai Roaming and chase decisions of monsters and companions.
World World systems: crafting, resource respawn, spawners, quests. Use it for your own world clocks.
Projectiles Runs last: projectiles in flight and ground areas.