How-To: Debug Lock-On with the Dev Tools
Goal: diagnose why a target won't lock, why soft lock picks the wrong enemy, or why a preset returns nothing - using the live Crimson.Camera.DevTools inspector.
Prerequisites
You are in PIE (the tools are PIE-gated) and have a pawn with a
UCrimsonLockOnComponent. Open it from Tools -> Crimson Camera -> Camera Dev Tools, or type `Crimson.Camera.DevTools` in the console.What each tab shows
| Tab | Shows | Use it to |
|---|---|---|
| Targets | Every candidate actor with per-column pass/fail: Lockable, CanLock (gate), LoS, Screen (centre score), Self, the hard-lock survivor + rank, Soft, and its Indicator state. Draws a magenta debug marker on the current soft target. | See exactly which filter drops a target and where it ranks. |
| Lock-On | Live hard / soft state and what Get Current Lock On Target resolves to (HARD vs SOFT), plus the active lock point. | Confirm what your gameplay code reads this frame. |
| Camera | The active mode, blend weights, and the shared shoulder / zoom values. | Verify which mode is on top and how it is blending. |
| Preset | The hard preset's tasks and the soft preset side by side; flags a soft preset that is missing a Frontal Cone filter. | Catch the most common soft-lock misconfiguration. |
Symptom -> diagnosis
| Symptom | Look at | Likely cause |
|---|---|---|
| Nothing locks at all | The Targets tab is empty | The preset has no Selection task (e.g. AOE) - selection runs before filters, so zero selected = zero candidates. |
| A specific target is skipped | The failing column on that Targets row | That filter dropped it - Lockable (no target component / health-gated), LoS (blocked), CanLock (gate), or wrong team. |
| Soft lock grabs enemies behind you | The Preset tab soft column | The soft preset is missing a Frontal Cone filter (Reference Direction = Camera View). |
| Wrong soft target / flicker | The Targets Screen + Soft columns | Stickiness too low - raise SoftStickinessScoreMargin / SoftMinDwellTime. |
The #1 gotcha
A targeting preset with no Selection task always returns zero candidates - filters and sorts only ever narrow a selection. If the Targets tab is empty, add an AOE (or other selection) task first. See Concept: Lock-On Pipeline.
See also
- How-To: Set Up Lock-On - the preset / config / component setup these tabs inspect.
- How-To: Add Soft Lock-On - the soft-lock feel these tabs debug.
- Concept: Lock-On Pipeline - Selection -> Filter -> Sort, and why selection must come first.