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.Sections are dock tabs
Every titled section of a tab is a real dock tab: drag one to reorder it, drop it onto another to stack them as tabs, drag it to a window edge to split them side by side, or drag the divider between two to resize. Drag a section out to tear it off into its own window, or right-click it for Dock to Sidebar - sections that are reference-only start in the sidebar. The arrangement is saved per window and comes back after you switch tabs, close the window, or restart the editor. Reset layout (top of the window) restores the default arrangement.
What each tab shows
| Tab | Shows | Use it to |
|---|---|---|
| Targets | Every candidate actor with per-column pass/fail: Lockable, CanLock (gate), LoS, Screen (center 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: Soft Lock-On - the soft-lock feel these tabs debug.
- Concept: Lock-On Pipeline - Selection -> Filter -> Sort, and why selection must come first.