API Reference

Types are in CrimsonCamera unless noted. BP = Blueprint-callable; C++ only = no Blueprint node.

Core

TypeKindDescription
UCrimsonCameraComponentUCameraComponent subclassOwns the mode stack + override stack + shared shoulder/zoom. BP: Push/Pop/Has Camera Mode Override, Set/Toggle/Get Shoulder, Get Shoulder Sign, Set/Add/Get Zoom Distance, Get Current Zoom Distance, Play Camera Shake, Set/Get Field Of View Override, Set/Get Camera Shake Scale, Get Camera Mode Instance, Get Active Camera Mode, Get Blend Info, Find Camera Component, Determine Camera Mode (override). Properties: Shoulder, ShoulderInterpSpeed, Min/MaxZoomDistance, ZoomInterpSpeed. C++ only: DetermineCameraModeDelegate, AddFieldOfViewOffset (one-frame). SetFieldOfViewOverride is a persistent absolute FOV applied after the blend (0 = use the mode's authored FOV).
UCrimsonCameraModeAbstract UObject (Blueprintable)Base mode. Update View / Update Blending / Get Pivot Location / Get Pivot Rotation / On Activation / On Deactivation are BlueprintNativeEvents.
FCrimsonCameraModeViewStructA mode's per-frame output: Location, Rotation, ControlRotation, FieldOfView.
ECrimsonCameraModeBlendFunctionEnum (BlueprintType)Linear, EaseIn, EaseOut, EaseInOut.
ECrimsonCameraShoulderEnum (BlueprintType)Center, Right, Left - the shared shoulder side on UCrimsonCameraComponent.
FCrimsonCameraModeDelegateC++ delegate (RetVal)Return-value selection delegate. C++ only - Blueprint uses the Determine Camera Mode event instead.

Built-in modes

TypeAddsKey members (all BP)
UCrimsonCameraMode_ThirdPersonOffset curves, penetration avoidance, lag, recenter; applies the component's shared shoulder/zoomRecenterCamera; runtime setters Set Camera Lag Enabled/Speed, Set Camera Rotation Lag Enabled/Speed, Set Auto Recenter Enabled/Delay/Interp Speed (for options menus); properties bUseShoulderOffset, bUseZoom, bEnableCameraLag, bEnableRecenter. (Shoulder & zoom API + range live on UCrimsonCameraComponent.)
UCrimsonCameraMode_TopDownFixed-offset isometric followFollowSpeed, PivotOffset, offset curves; no control-rotation sync

Penetration, occlusion & UI

TypeKindDescription
FCrimsonPenetrationAvoidanceFeelerStruct (BlueprintType)One feeler ray for third-person collision avoidance (direction, world/pawn weights, extent, throttle).
ICrimsonCameraAssistInterfaceUInterfaceImplement on a Character/Controller: Get Ignored Actors For Camera Penetration (ignore-list for traces), Get Camera Prevent Penetration Target (override the kept-in-frame actor), and On Camera Penetrating Target - all BlueprintNativeEvents. See How-To: Prevent Camera Clipping.
UCrimsonCameraOcclusionComponentUActorComponentSwaps tagged occluders to a dynamic instance of the project dither fade material while they block the camera, then restores them (local-only; a fast FadeOutInterpSpeed snaps the original back). Configure FadeableActorTag, FadedAmount, FadeInterpSpeed/FadeOutInterpSpeed, TraceChannel; override the material per-pawn with FadeMaterialOverride. BP runtime: Set Occlusion Enabled / Is Occlusion Enabled (off snaps faded geometry back), Set Occlusion Fade Strength (0..1).
UCrimsonUICameraManagerComponentUActorComponentUI seizes camera control via SetViewTarget. C++ only - no Blueprint nodes.
ACrimsonPlayerCameraManagerAPlayerCameraManager subclassHosts the UI camera; set as your PlayerController's Player Camera Manager Class.

Lock-on

TypeKindDescription
UCrimsonLockOnComponentUActorComponentPlayer locker. BP (hard): ToggleLockOn, SetLockOnTarget, ClearLockOn, SwitchTargetInScreenDirection, CycleTarget, CycleLockPoint, IsLockedOn, GetCurrentTarget, GetCurrentLockPoint..., SetIndicatorsEnabled, AreIndicatorsEnabled, OnLockOnChanged. BP (soft): GetCurrentLockOnTarget (hard if locked, else soft -> FCrimsonLockOnTargetInfo), GetCurrentSoftTarget, IsSoftTracking, SetSoftLockEnabled, IsSoftLockEnabled, OnSoftTargetChanged.
UCrimsonLockOnTargetComponentUActorComponentMakes an actor lockable; holds LockOnPoints and owns this target's indicator widgets. CanBeLockedOnBy is an overridable BlueprintNativeEvent; GetLockOnPointComponent returns the component + socket a point lives on (for tracking a moving bone); IndicatorWidgetClassOverride / bShowIndicator control its indicator.
FCrimsonLockOnTargetInfoStruct (BlueprintType)The resolved current target from GetCurrentLockOnTarget: TargetActor, TargetComponent (mesh the socket lives on), SocketName, WorldLocation, LockPointIndex, bIsHardLock.
UCrimsonCameraMode_LockOnThirdPerson subclassHard-locks onto the active lock point. Tunables: ScreenBiasPitchDeg, LockInterpSpeed, TeleportSnapDistance, DistanceFovBonus. Override Compute Desired Lock Rotation.
UCrimsonCameraMode_SoftLockOnThirdPerson subclassOptional gentle-assist mode for soft lock. Deadzoned, rate-capped yaw nudge that never slerps and never fights the stick; plain third-person with no soft target or during a hard lock. Tunables: DeadzoneAngleDeg, SoftBiasInterpSpeed, MaxBiasDegreesPerSec, bBiasPitch. Override Compute Soft Look Rotation.
ECrimsonSoftLockCameraBehaviorEnum (BlueprintType)NoCameraTakeover (default) / GentleCameraAssist - how soft lock treats the camera.
UCrimsonLockOnConfigUPrimaryDataAssetTargeting preset + tunables (MaxLockDistance, SwitchDeadzone, SwitchCooldown, LoS) + behavior fragments + camera-mode class + indicator flags (bShowAvailableIndicators, bOnlyShowAvailableWhileLocked, IndicatorRefreshInterval). TargetingPreset drives hard lock; the optional SoftTargetingPreset drives soft lock (falls back to TargetingPreset when unset) and should carry a Frontal Cone filter so soft never tracks behind the camera.
UCrimsonLockOnFragmentAbstract UObject (Instanced, Blueprintable)Behavior on lock acquire / point-changed / release / tick. Add instances to a config.
FCrimsonLockOnPointStruct (BlueprintType)One lock point: SocketName, DisplayName, Priority.
UCrimsonLockOnIndicatorWidgetAbstract UUserWidget (Blueprintable)On-screen indicator base. On Indicator State Changed (Available/Locked) drives visuals; Update Screen Position and Update Distance Scale are overridable BlueprintNativeEvents; DistanceScaleMode (ClampedLinear/Curve/None) keeps a steady apparent size.
UCrimsonCameraSettingsUDeveloperSettingsProject Settings -> Crimson -> Crimson Camera. DefaultLockOnIndicatorWidgetClass - the fallback indicator (shipped default via Config/DefaultCrimsonCamera.ini). Soft Lock-On section: bEnableSoftLock, SoftLockCameraBehavior, SoftStickinessScoreMargin, SoftMinDwellTime, SoftLockMaxDistance, SoftLockRefreshInterval, bShowSoftTargetIndicator, SoftLockCameraModeClass, SoftLockCameraOwnerTag.
Targeting tasksUTargetingTask subclassesUCrimsonTargetingFilterTask_RequireLockable, UCrimsonTargetingFilterTask_FrontalCone (forward-cone cull - mandatory for soft lock, Reference Direction = Camera View), UCrimsonTargetingFilterTask_LineOfSight, UCrimsonTargetingSortTask_ScreenCenter. Selection = built-in AOE; distance = built-in sort. A preset with no selection task returns zero candidates.
UCrimsonCoreLockOnTargetComponent / UCrimsonCoreTargetingFilterTask_AffiliationCrimsonCoreHealth-gated lockable (auto-added to players + NPCs) and the team-affiliation filter task.
UCrimsonCoreGameplayAbilityCrimsonCore (ability base)Per-ability lock-on consumption. BP: Get Current Lock On Target (forwards to the avatar's locker), Face Current Lock On Target (yaw-snap the avatar, authority + owner only); tunables bFaceLockOnTargetOnActivate, bFaceSoftTargets.

MCP tools (AI agents)

Two UToolsetDefinition toolsets (module CrimsonCameraEditor) let an AI agent read and drive the camera + lock-on systems in a running PIE session over MCP. They register only when Crimson MCP is enabled (Project Settings -> Crimson -> Crimson MCP; requires an editor restart - see CrimsonEditorUtilities -> Quick Start). All tools operate on the local player's PIE world and resolve actors by outliner label (empty = the local player pawn). Camera and lock-on hold no authoritative state, so the act tools are safe to call while playing. Errors surface to the agent as a script error.

ToolsetToolKindDescription
CrimsonCameraToolsetGetCameraStatereadActive mode (class/tag/blend), stack-top tag + weight, shoulder (+sign), zoom (target/current), shake scale, FOV override, and the camera manager's FOV/rotation/location.
CrimsonCameraToolsetPushCameraModeOverrideactPush an override camera mode (by class name / Blueprint name / class path) keyed by a registered owner tag.
CrimsonCameraToolsetPopCameraModeOverrideactPop the override for an owner tag.
CrimsonCameraToolsetSetShoulderactSet the shoulder side (Center / Right / Left).
CrimsonCameraToolsetSetZoomDistanceactSet the shared zoom distance (clamped to the component's range).
CrimsonCameraToolsetSetFieldOfViewOverrideactSet/clear the persistent FOV override (<= 0 clears).
CrimsonLockOnToolsetGetLockOnStatereadHard target + lock point, soft target, config asset, and the soft-lock / indicators flags.
CrimsonLockOnToolsetListLockableTargetsreadEvery actor with a UCrimsonLockOnTargetComponent (lockable flag, point count, indicator state).
CrimsonLockOnToolsetToggleLockOnactLock onto the best candidate, or release.
CrimsonLockOnToolsetSetLockOnTargetactLock onto a specific actor (by label) + point index.
CrimsonLockOnToolsetClearLockOnactRelease the current lock.
CrimsonLockOnToolsetCycleTargetactStep to the next/previous candidate.
CrimsonLockOnToolsetCycleLockPointactStep to the next/previous lock point on the current target.
CrimsonLockOnToolsetSetSoftLockEnabledactEnable/disable soft tracking at runtime.