CrimsonHitDetection

Gameplay Ability System projects only
Every hit is reported as a FGameplayAbilityTargetDataHandle, and the window drivers are UAbilityTask nodes. There is no non-GAS path. If your project does not use GAS, this plugin is not usable as-is.
Built on the Gameplay Targeting System
All geometry and target filtering is authored as a UTargetingPreset, which lives in Epic's Gameplay Targeting System plugin (TargetingSystem).

You do not need to enable it yourself. It is declared as a dependency in CrimsonHitDetection.uplugin, so enabling this plugin enables it too - even though it ships disabled by default. It will show as enabled in Edit -> Plugins without you having ticked it.

CrimsonHitDetection answers one question: given a shape, a moment in time, and a filter policy, which actors were hit? It answers it identically for a sword swing, a shockwave, a hitscan shot and a projectile, so an attack is authored once as a data asset instead of hand-rolling a swept trace, an already-hit set, team filtering and authority gating in every ability.

It reports; it does not apply. The plugin never builds or applies a UGameplayEffect, so your ability keeps full control of effect construction and anything hooked onto it.

What's included

SystemKey typesPurpose
ProfilesUCrimsonHitProfileThe reusable asset: preset, dedup policy, target limits, query rate
RuntimeUCrimsonHitDetectionComponentOpens and closes hit windows, runs queries, reports results
SelectionUCrimsonHitSelectionTask_SocketSweep, UCrimsonHitSelectionTask_ActorSweep, UCrimsonHitSelectionTask_Area, UCrimsonHitSelectionTask_TraceSwept geometry the Targeting System does not ship, plus resizable area and trace shapes
FilteringUCrimsonHitFilterTask_Affiliation, _ActorClass, _Angle, _LineOfSight, _TargetTagQuery, _MaxDistance, _RequireAbilitySystem, _RequireHurtboxComposable rules for who counts as a valid target
DriversUCrimsonAbilityTask_HitWindow, UCrimsonAbilityTask_HitQuery, UAnimNotifyState_CrimsonHitWindow, UAnimNotify_CrimsonHitQueryAbility-driven and animation-driven active frames
ProjectilesACrimsonProjectile, UCrimsonAbilityTask_LaunchProjectileReplicated, pool-ready projectiles driven by the same profiles
Hit zonesUCrimsonHitZonePhysicalMaterial, UCrimsonHurtboxComponentNaming head shots and weak points, with no damage maths
Examples/CrimsonHitDetection/Examples/Worked presets, profiles and a projectile Blueprint to duplicate
Shipped examples
Tick Settings -> Show Plugin Content to see /CrimsonHitDetection/Examples/:

TP_CrimsonMeleeSweep, TP_CrimsonAreaSphere, TP_CrimsonHitscan, TP_CrimsonProjectileSweep - one preset per attack shape.
DA_CrimsonHitProfile_Melee, _Area, _Projectile - profiles wired to those presets.
BP_CrimsonProjectile_Example - a projectile ready to fire once you add a mesh.

Only the melee preset needs editing: its socket names cannot be guessed for your weapon.

Plugin dependencies

GroupNameWhy
Crimson pluginsCrimsonCommonThe CRIMSON_LOG_* macros. Nothing else
Engine pluginsGameplayAbilitiesTarget data output, UAbilityTask bases
Engine pluginsTargetingSystemUTargetingPreset, UTargetingTask, UTargetingSubsystem
Engine modulesGameplayTasksUGameplayTask base under UAbilityTask
Engine modulesGameplayTagsHit zones, context tags, impact cue tags
Engine modulesDeveloperSettingsUCrimsonHitDetectionSettings
Engine modulesPhysicsCoreUPhysicalMaterial subclassing for hit zones
Engine modulesAIModuleFGenericTeamId::GetAttitude for the affiliation filter
Engine modulesNetCoreQuantized impact serialization for the cosmetic multicast
Engine modulesProjectsRegistering the plugin's Config/Tags search path
No team-system dependency
Affiliation filtering goes through the engine's IGenericTeamAgentInterface, so it works with any team system that implements it - including CrimsonTeams - without this plugin depending on one.

If you are NOT using CrimsonTeams, read How-To: Filter By Team before shipping. Unresolved team data reads as Neutral, and the filter allows Neutral by default, so the failure mode is hitting your own allies rather than an error.

Which path do I choose?

Start here
Building a melee attack? Follow Quick Start - it walks a swung weapon end to end.
Area attack, shockwave or hitscan? Quick Start first, then How-To: Area Attacks and Hitscan.
Projectiles? How-To: Projectiles.
Head shots and weak points? How-To: Hit Zones.
Ranks, modifiers or buffs that change an attack's size or reach? How-To: Vary An Attack's Values.
Not using CrimsonTeams, or attacks are hitting your own side? How-To: Filter By Team - read it before shipping.
Want the model behind hit windows and dedup before writing anything? Concept: Windows, Shapes and Filters.