Skip to content

Add new target point bone for Seraphim destroyer#7056

Merged
lL1l1 merged 7 commits intoFAForever:developfrom
lL1l1:balance/destroyer-target-point
Mar 1, 2026
Merged

Add new target point bone for Seraphim destroyer#7056
lL1l1 merged 7 commits intoFAForever:developfrom
lL1l1:balance/destroyer-target-point

Conversation

@lL1l1
Copy link
Contributor

@lL1l1 lL1l1 commented Mar 1, 2026

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) and dbg_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.
image
image

With further testing, it is evident that the engine's default aim point when no target bone is specified does not account for CollisionOffsetY:
image

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.
{3BF6388F-9D62-4CEB-AD05-F50405C36275}

The beam not aiming at exactly the aim point is a separate issue.

Checklist

Summary by CodeRabbit

  • Bug Fixes

    • Reduced projectile overshooting for the Seraphim Uashavoh (T2 Destroyer) by adjusting its aim point for more consistent hits.
  • Documentation

    • Clarified how unit target points are chosen, making aiming behavior easier to understand.

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.
@lL1l1 lL1l1 requested a review from Basilisk3 March 1, 2026 00:45
@lL1l1 lL1l1 added area: engine related to engine bugs/limitations area: balance related to units balance, but not as a suggestion area: sim Area that is affected by the Simulation of the Game labels Mar 1, 2026
@coderabbitai
Copy link
Contributor

coderabbitai bot commented Mar 1, 2026

Caution

Review failed

The pull request is closed.

ℹ️ Recent review info

Configuration used: defaults

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 5f60aa6 and 4146181.

📒 Files selected for processing (1)
  • changelog/snippets/balance.7056.md

📝 Walkthrough

Walkthrough

Adds an AI.TargetBones entry to the Seraphim T2 destroyer (XSS0201), updates UnitBlueprint comments clarifying TargetBones/center position, and adds a changelog noting a lowered above-water aim elevation to reduce shot overshoot.

Changes

Cohort / File(s) Summary
Changelog Entry
changelog/snippets/balance.7056.md
Added changelog describing reduced overshoot by lowering above-water aim elevation for Uashavoh (XSS0201).
Blueprint Documentation
engine/Core/Blueprints/UnitBlueprint.lua
Reworded comments around TargetBones and clarified center position calculation uses Size but not CollisionOffset (comment-only changes).
Unit Configuration
units/XSS0201/XSS0201_unit.bp
Added AI.TargetBones array with {"XSS0201", "Center_Target"} to the XSS0201 UnitBlueprint.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Possibly related PRs

Suggested reviewers

  • Basilisk3
  • Rhaelya

Poem

🐇 I nudged the bones where aim must be,
Waves hush, the targets breathe with me,
Torpedoes curve, then kiss the sea,
Little changes, steady glee,
Hop, hop — balance for the fleet!

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Title check ✅ Passed The title accurately describes the main change: adding a new target point bone for the Seraphim destroyer to fix aiming issues.
Description check ✅ Passed The description includes detailed issue context, clear explanation of changes, testing performed, and a completed checklist with all required sections filled.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@lL1l1 lL1l1 marked this pull request as ready for review March 1, 2026 01:06
Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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

📥 Commits

Reviewing files that changed from the base of the PR and between 72a00be and 4f2c111.

📒 Files selected for processing (4)
  • changelog/snippets/balance.7056.md
  • engine/Core/Blueprints/UnitBlueprint.lua
  • units/XSS0201/XSS0201_lod0.scm
  • units/XSS0201/XSS0201_unit.bp

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🧹 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.

ℹ️ Review info

Configuration used: defaults

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 4f2c111 and 5f60aa6.

📒 Files selected for processing (1)
  • changelog/snippets/balance.7056.md

@lL1l1 lL1l1 merged commit 9868135 into FAForever:develop Mar 1, 2026
2 of 3 checks passed
@github-project-automation github-project-automation bot moved this from To Discuss to Done in 2025 - Balance Iteration I Mar 1, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area: balance related to units balance, but not as a suggestion area: engine related to engine bugs/limitations area: sim Area that is affected by the Simulation of the Game

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

2 participants