KBVEGameplay
Overview
Section titled “Overview”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-
SourceKeygate (TryApplyEffectrejects 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.
Stats + combat
Section titled “Stats + combat”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/…) +KBVEMovehelpers; 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, hitsIKBVECombatDamageable, applies damage + knockback/launch impulse, firesOnMeleeHit; per-swing dedupe (BeginSwing/EndSwing).
UKBVEEffectComponent applies effects through IKBVEStatTarget; a game’s stat
owner maps those onto its FKBVEStatBlock / FKBVEStatFragment.
Event payloads (KBVEGameplayEvents.h)
Section titled “Event payloads (KBVEGameplayEvents.h)”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.