[core][cpp] Fix mob-linking behavior impacting Einherjar#9959
Merged
Conversation
5207b53 to
1fe5cac
Compare
Use SUPERLINK for BCNM party matching. Force-link mobs now require a family or sublink match instead of linking with all other force-link mobs indiscriminately.
1fe5cac to
2ee4c8f
Compare
Xaver-DaRed
approved these changes
May 9, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
I affirm:
What does this pull request do?
Resolves an issue with mobs of different families linking in Einherjar. It's a combination of two issues, one being MOBTYPE_BATTLEFIELD, and the other being force-link.
What this would look like is: pulling an Utgarth Bat would link the chamber's boss, even though the boss has no family or sublink relationship to bats.
Root cause
Regression in bbc703d620 ("add ability for mob families that don't link to link with subfamilies"). That commit reorganized the inner match in
FindPartyForMoband added a force-link clause OR'd alongside the family/sublink clauses, which let force-link mobs with sublinks bridge two otherwise-disjoint groups.Fix
In
FindPartyForMob, treat force-link and family/sublink as mutually exclusive matching paths:Contained to one function in
src/map/zone_entities.cpp.ShouldForceLink(), mob pools, family mods, and zone settings are unchanged.Retail behavior reference
The June 9, 2008 FFXI version update explicitly changed Einherjar linking behavior:
Source: https://www.bg-wiki.com/ffxi/Version_Update_(06/09/2008)
Original-release Einherjar (June 6, 2007) had wave-wide linking regardless of proximity; SE patched that out in 2008. Current retail Einherjar links along normal family rules, which is what this fix restores. Boss-add interactions (Vampyr_Jarl transformation, Motsognir demon adds, Hildesvini Djiggas, etc.) are scripted spawn mechanics rather than links, and are unaffected by this change.
Test plan
Restart the map server before each test (party assignment runs at zone load).