Makes Trial of the Crusader (all four difficulties, map 649) friendly to cross-faction raids.
Every boss and chest there rolls an Alliance and a Horde loot reference, and each item is flagged for one faction, so a mixed raid gets two sets and each player only sees half of the loot.
With this module:
- One set drops. References that contain only items of one faction roll only when that faction is the majority of the (non-GM) players inside the instance. Ties go to the group leader's faction (the looter's if the leader is offline), so an evenly split raid gets the same faction's loot all run. The Swift Alliance Steed and Swift Horde Wolf from the 10-player heroic tribute chest are not references, so both still drop and each faction loots its own.
- Everyone can loot it. Inside the raid, any item listed in
player_factionchange_itemsis visible and rollable for both factions. Equipping is still faction-locked. - Exchange NPC. The Argent Exchange Officer (creature
210000, a blood elf Argent Peacekeeper) opens a vendor window listing, for free, the counterpart of every item in the player's bags that is locked to the other faction (fromplayer_factionchange_items). "Buying" a counterpart swaps it for the original, and the new item takes the old one's bag slot. Selling to this NPC is disabled.- Only items still within their loot trade window qualify: 2 hours of played time after looting, and never enchanted or socketed (both end the window). This keeps the NPC to fresh raid loot.
- The exchanged item stays tradeable to the same players for the rest of the original window, so swapping does not stop the loot from being passed on. Nobody can swap an item back, since the counterpart belongs to their own faction.
- The trade window requires
Item.SetItemTradeable = 1inworldserver.conf(the default). - Texts are localized: chat and error strings in
module_string(_locale), the gossip text innpc_text(_locale)(the client requests it by ID), and the name increature_template_locale.
Core hook GlobalScript::CanLootOtherFactionItem (called from LootItem::AllowedForPlayer), added in
azerothcore/azerothcore-wotlk#28320.
- Place the module in
modules/and re-run CMake. - Apply the files in
data/sql/db-world/updates/(or let the DB updater do it). - Copy
conf/mod-crossfaction-toc.conf.distto your config folder. The SQL spawns the NPC in the Trial of the Crusader entrance hall at the Argent Tournament Grounds. Add more spawns with.npc add 210000. Re-applying the SQL removes every spawn of the NPC and recreates only the entrance one.
| Option | Default | Description |
|---|---|---|
CrossFactionToC.Enable |
1 |
Enables the loot filtering and cross-faction loot visibility. The exchange NPC works either way. |