Skip to content

KBVEGameplay

Game-agnostic consumable + effect framework. A game implements IKBVEStatTarget (map its stats to FName ids) and attaches UKBVEEffectComponent; the plugin owns the effect lifecycle from a data-driven FKBVEEffectSpec:

  • Restores — instant stat deltas (heal HP, restore mana/energy).
  • Regens — over-time HoT / DoT (RatePerSecond × Duration).
  • Buffs — temporary additive / multiplicative stat modifiers (auto-removed on expiry).
  • Statuses — named condition tags (poison / regen / blessed) with stacks + duration.
  • Cooldown — per-SourceKey gate (TryApplyEffect rejects while hot).
  • AnimationRef — carried on the spec for the game to drive a montage.

Tick auto-disables when no effects or cooldowns are active. Effect DATA lives in the shared itemdb; the game builds an FKBVEEffectSpec from its item definition.

Also holds the agnostic gameplay-stat layer (the effect target it feeds):

  • FKBVEStatBlock — health / mana / stamina with regen rates + stamina thresholds; HealthFraction / ManaFraction / StaminaFraction.
  • EKBVEMovementState — movement flag set (OnGround/Moving/Sprinting/…) + KBVEMove helpers; gates stamina drain/regen.
  • FKBVEStatFragment + UKBVEStatRegenProcessor — Mass fragment + parallel regen processor (health/mana regen, stamina drain on sprint, low-stamina + empty penalty). Worker-thread, cache-coherent.
  • IKBVECombatDamageable / IKBVECombatAttacker — combat interfaces (apply damage/heal/death/danger; attack-trace / combo / charged hooks).
  • UKBVEMeleeComponent — generic melee sweep: forward sphere trace from a mesh socket, hits IKBVECombatDamageable, applies damage + knockback/launch impulse, fires OnMeleeHit; per-swing dedupe (BeginSwing/EndSwing).

UKBVEEffectComponent applies effects through IKBVEStatTarget; a game’s stat owner maps those onto its FKBVEStatBlock / FKBVEStatFragment.

Shared cross-game vocabulary for stat/combat signals — plain POD structs a game and reusable UI agree on: FKBVEHealthChangedPayload / FKBVEManaChangedPayload / FKBVEStaminaChangedPayload (current/max + stamina regen delay), FKBVEDamageReceivedPayload (amount + damage-bit), and the Mass-sim FKBVECombatHitPayload / FKBVEEntityKilledPayload (entity handles). Transport stays the game’s — these are only the contract; chuck pipes them through its own TKBVEChannel hubs. Game-specific payloads (inventory-dirty, tooltip, item-consumed, pickup, auth, chat, ui-flags) stay in the game.