Add new target point bone for Seraphim destroyer#7056
Add new target point bone for Seraphim destroyer#7056lL1l1 merged 7 commits intoFAForever:developfrom
Conversation
The Center_Target bone works around an engine issue that was making units aim too high on the unit hitbox because it wasn't accounting for CollisionOffsetY for some reason. XSS0201 is there for torpedoes to use, as it sits underwater while the destroyer is surfaced.
|
Caution Review failedThe pull request is closed. ℹ️ Recent review infoConfiguration used: defaults Review profile: CHILL Plan: Pro 📒 Files selected for processing (1)
📝 WalkthroughWalkthroughAdds an Changes
Estimated code review effort🎯 2 (Simple) | ⏱️ ~10 minutes Possibly related PRs
Suggested reviewers
Poem
🚥 Pre-merge checks | ✅ 3✅ Passed checks (3 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
I tested CollisionOffsetX too
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In `@changelog/snippets/balance.7056.md`:
- Line 3: Fix the unit ID typo in the changelog entry by replacing the incorrect
identifier XSL0201 with the correct XSS0201 in the "Uashavoh: T2 Destroyer"
line; update the text so it references XSS0201 (Seraphim destroyer) consistently
to avoid confusion for players and contributors.
ℹ️ Review info
Configuration used: defaults
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (4)
changelog/snippets/balance.7056.mdengine/Core/Blueprints/UnitBlueprint.luaunits/XSS0201/XSS0201_lod0.scmunits/XSS0201/XSS0201_unit.bp
There was a problem hiding this comment.
🧹 Nitpick comments (1)
changelog/snippets/balance.7056.md (1)
4-4: Clarify the measurement notation in parentheses.The parenthetical notes "(0.25 height of hitbox above)" and "(0.45 height of hitbox above)" are ambiguous. It's unclear whether these represent absolute elevations, fractions of the hitbox height, distances from a reference point, or something else.
Consider revising to be more explicit, for example:
- "0.65 (72% up the above-water hitbox) -> 0.45 (50% up the above-water hitbox)"
- "0.65 (0.4 above hitbox center) -> 0.45 (0.2 above hitbox center)"
- Or simply: "0.65 -> 0.45" without the parenthetical if it doesn't add clarity
This will help players and developers better understand the technical change.
📝 Example revision options
Option 1 - Remove ambiguous notation:
- - Aim point above-water elevation: 0.65 (0.25 height of hitbox above) -> 0.45 (0.45 height of hitbox above) + - Aim point elevation: 0.65 -> 0.45 (centered on above-water portion)Option 2 - Use percentage of above-water hitbox:
- - Aim point above-water elevation: 0.65 (0.25 height of hitbox above) -> 0.45 (0.45 height of hitbox above) + - Aim point above-water elevation: 0.65 (72% up) -> 0.45 (50% up, centered)Option 3 - Use absolute distance above water line:
- - Aim point above-water elevation: 0.65 (0.25 height of hitbox above) -> 0.45 (0.45 height of hitbox above) + - Aim point elevation: 0.65 (0.65 above water) -> 0.45 (0.45 above water)🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@changelog/snippets/balance.7056.md` at line 4, The parenthetical notes in the line "Aim point above-water elevation: 0.65 (0.25 height of hitbox above) -> 0.45 (0.45 height of hitbox above)" are ambiguous; update that line to clearly state what the parentheses represent (e.g., percentage of the above-water hitbox height, absolute distance from the hitbox center, or distance above the waterline) or remove them if unnecessary—for example replace with "Aim point above-water elevation: 0.65 (72% up the above-water hitbox) -> 0.45 (50% up the above-water hitbox)" or simply "Aim point above-water elevation: 0.65 -> 0.45". Ensure the chosen wording uses consistent units/terms and matches other changelog entries.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Nitpick comments:
In `@changelog/snippets/balance.7056.md`:
- Line 4: The parenthetical notes in the line "Aim point above-water elevation:
0.65 (0.25 height of hitbox above) -> 0.45 (0.45 height of hitbox above)" are
ambiguous; update that line to clearly state what the parentheses represent
(e.g., percentage of the above-water hitbox height, absolute distance from the
hitbox center, or distance above the waterline) or remove them if
unnecessary—for example replace with "Aim point above-water elevation: 0.65 (72%
up the above-water hitbox) -> 0.45 (50% up the above-water hitbox)" or simply
"Aim point above-water elevation: 0.65 -> 0.45". Ensure the chosen wording uses
consistent units/terms and matches other changelog entries.
Issue
Players have reported Exodus projectiles seeming to fly straight through Seraphim destroyers. Specifically in replay 26577440 at 13:10 on the left side of the map there are 2 projectiles that fly just a bit over the top of the Seraphim destroyer's hitbox, which looks as if it went straight through from the normal top-down perspective. This is particularly weird because the Exodus has the best accuracy out of all destroyers (even more so after the recent buff) with only 0.2 firing randomness, and in the replay the destroyer wasn't even at maximum range.
Upon detailed investigation, I noticed using


dbg c(shows hitboxes as blue boxes) anddbg_CollisionBeam(shows collision beams as green lines) that Seraphim destroyers firing at Seraphim destroyers were not aiming at the center of the hitbox, but towards the top of it.With further testing, it is evident that the engine's default aim point when no target bone is specified does not account for

CollisionOffsetY:This means that with the Seraphim destroyer's hitbox of 1.3 SizeY and -0.4 CollisionOffsetY, the engine was aiming at Y = 0.65, with only 0.25 hitbox height above the aim point, while in reality the center is located at Y 0.25, and the above-water center is at 0.45.
This tiny hitbox height above the aim point explains why players were seeing Exodus shots fly over the top of Seraphim destroyers so often that they noticed it and reported it.
Description of the proposed changes
Add a new bone at height 9 in the mesh or 0.45 translated using the unit's UniformScale of 0.05, and assigns it as a target bone. This places it in the center of the above-water hitbox, giving the greatest chance to hit.
A new bone is necessary because the root bone is at height 0 which ends up being underwater, and thus not allowed to be target by most weapons.
Testing done on the proposed changes
Using the same collision box and beam debugging before, the weapon aims at the bone as expected, and this is noticeably lower than the default aim point.

The beam not aiming at exactly the aim point is a separate issue.
Checklist
Summary by CodeRabbit
Bug Fixes
Documentation