transfer) used lowercase column names (guid, currency, quantity) that
match a different fork's schema but not TrinityCore's character_currency
table, which uses PascalCase (CharacterGuid, Currency, Quantity) as
seen in CHAR_SEL_PLAYER_CURRENCY / CHAR_UPD_PLAYER_CURRENCY /
CHAR_REP_PLAYER_CURRENCY / CHAR_DEL_PLAYER_CURRENCY at the top of the
file. mysql_stmt_prepare rejected both statements at startup with
"Unknown column 'pc.guid' in 'on clause'" / "Unknown column 'guid'
in 'where clause'", taking the tc_characters pool down.
CHAR_SEL_ACCOUNT_CHARACTER_CURRENCIES: pc.currency -> pc.Currency,
pc.quantity -> pc.Quantity, ON c.guid = pc.guid ->
ON c.guid = pc.CharacterGuid.
CHAR_UPD_PLAYER_CURRENCY_QUANTITY: SET quantity -> SET Quantity,
WHERE guid -> WHERE CharacterGuid, currency -> Currency.
User feedback: the textureKit string is already in DB2 (Campaign.UiTextureKitID
-> UiTextureKit.KitPrefix); don't duplicate it in a fabricated world-config
column.
- Add UiTextureKit.db2 loader (struct, LoadInfo, store, LOAD_DB2 call,
HOTFIX_SEL_UI_TEXTURE_KIT enum + statement, ui_texture_kit hotfix table).
Schema: ID + KitPrefix string (FieldCount=1 per UiTextureKitMeta,
LayoutHash 0x4740638A at build 12.0.5.67186).
- MajorFactionMgr:
* Drop MajorFactionConfig::TextureKit (std::string).
* Add MajorFactionConfig::RenownCampaignID (uint32) - Campaign.db2 FK.
* Validate FK against sCampaignStore at LoadWorldData time; clear with
error log if the campaign row is missing.
* Add GetRenownCampaignID(factionId) and GetTextureKitPrefix(factionId).
GetTextureKitPrefix walks the canonical Blizzard chain:
faction -> renownCampaignId
-> Campaign.UiTextureKitID
-> UiTextureKit.KitPrefix
and returns the string the client uses as the atlas-name suffix
(e.g. "MajorFaction-DragonscaleExpedition").
- World data: 2026_05_16_01_world.sql rewritten. Column textureKit
replaced by renownCampaignId. Values pulled per-faction from the JSON
research files (campaign.id / campaign_id field):
DF: 166/197/189/174/203/231
TWW 11.0: 238/236/237/239
TWW 11.1+: 264/267/268
Midnight: 270 (shared 17-chapter)/267 (shared)
Plunderstorm/Gallagio/RitualSites: 0 (no associated campaign)
This was the user-observed redundancy: we had loaded 3 campaign DB2s
(Campaign, CampaignXQuestLine, CampaignXCondition - all wired) but
were not consuming Campaign.UiTextureKitID. Now wired.
- implemented JoiningTheAlliance = 30987;
- implemented TheAllianceWay = 30988;
- implemented AnOldPitFighter = 30989;
- code compiles without any errors or warnings - checked against TC pipelines
- the sql file adds new spawns - feel free to update the CGUID with the current last used GUID if needed.
!!! Please do not remove my credits from my files.
- improved the base script to avoid npc not properly terminating combat on player massive damage or edge case leading to npc death - on live the npc never gets under 20% hp
- added also auras for flame blessings being cast on the player during the combat phase - there is a bug with the Auras NOT showing but they get applied and work properly.
- EnterEvadeMode is now properly handled and the npc also despawns correctly at the end of the combat phase.