¶ TAKING EFFECT: 2026-06-05 @ Server Maintenance Window (Server Time -5 GMT)
**** SUPPORT FOR CLIENT VERSION: 3.3.5a ****
IMPORTANT
YOU MUST DELETE YOUR CACHE/WDB FOLDER TO BE ABLE TO SEE THE CHANGES AND FIXES
Make sure you have the latest patch installed to enable any custom updates - Download from here: Exodus Latest Patches
Please report any issues by creating a bug report on the discord server and giving a full description of what is not working
- Added an NPCBot refill system so we can restock the bots live, without restarting the server.
TrinityCore GitHub:
https://github.com/TrinityCore/TrinityCore/tree/3.3.5
- Scripts/AQ20: Implement Andorov's event (#31512)
- Scripts/Uldaman: Rewrite scripts (#31530)
- Scripts/EasternKingdoms: fix path id after 91dcae540ea8c7ecfe5794b9020fe93173b42102
- Scripts/Outland: avoid double reagent cost for Purify Helboar Meat spell script
- Core/SAI: add missing SMART_EVENT_REACHED_HOME when finished evading while on SMART_ESCORT
- Scripts/Molten Core: Rewrite Majordomo & Ragnaros (#31549)
- Scripts/Gruul's Lair: Update scripts (#31568)
- DB/Quest: Update 'An End And A Beginning' quest_offer_reward
- DB/Quest: Update 'An End And A Beginning' quest_offer_reward emotes
- DB/Conditions): Malister's Frost Wand should require Proto-Drake
- DB/Vendors: Adjusted Wood frog box restock value from 2.5 hours to 30 mins
- DB/SAI: Remove Lash of Pain from Succubus Minion
- DB/Quests: Fix Sleep Giants quest requirements
- DB/Creatures: Remove immunity to Disarm from Gal'darah
- DB/Graveyards: Fix Hearthglen Spirit Healer
- DB/Creatures: Deleted Wendigo spawning under the ground
- DB/Creatures: Remove spawn group entry for deleted creature
- DB/Quests: Fixes the prerequisite quest for "A Job Undone"
- DB/Creatures: Remove two Ahn'kahar Watcher spawns near the dungeon entrance in normal mode
- DB/Gameobjects: Correct Area 52 Mailbox faction
- Scripts/Serpentshrine Cavern: Rewrite Vashj (#31590)
- Scripts/Tempest Keep: Rewrite Solarian (#31593)
- Core/Movement: Added new immediate movement generator that handles movement without delaying anything to next update tick (for use with instant "movement" like facing changes)
- Core/Movement: Fix movement generator priority sorting mismatch between MovementGeneratorComparator and MotionMaster::DirectAdd
- Core/Movement: Reduce code duplication in few MotionMaster::*Clear functions
- Core/Movement: Move facing splines into MotionMaster
- Core/Misc: Allow formatting optionals with Trinity::StringFormat
- Core/Misc: Minor fixes in preparation to support fmt v10
- Core/Misc: More fixes in preparation to fmt v10 (#31618)
- DB/Misc: Add some Missing ruRU localization
- Core/Movement: Fixed players being able to control their characters after teleporting to a different map while feared or confused
- Core/Auras: Removed unneccessary aura effect handler invocations in Player::SendInitialPacketsAfterAddToMap, already handled by SMSG_MULTIPLE_MOVES
- Core/Movement: Fixed player movement being blocked if teleported within the same map while not being in control of their character
- Core/Authserver: Reduce array size for socket initializers and auth packet handlers
- Core/Movement: Fixed players keeping mount speed buff when dismounted while handling speed change ack packet
- Scripts/The Eye: Rewrite Kael'thas (#31642)
- Misc: Allow directories with spaces in extractor.sh (#31648)
- Core/Movement: Prevent immediate movement generators from fully removing other movement
- Dep/jemalloc: Update to 5.3.0
- Core/Achievements: Re-implement ACHIEVEMENT_CRITERIA_TYPE_BE_SPELL_TARGET2 (Gain Aura) (#31676)
- Scripts/Ulduar: Rewrite Hodir (#31682)
- DB: correct Saragosa's SAI script and movement template
- Scripts/Hyjal: Rewrite Archimonde (#31692)
- Scripts/Ahnkahet: missing attack start handling in Twisted Visage
- Core/SAI: allow timed events from SMART_ACTION_CREATE_TIMED_EVENT to inherit their parent's SMART_EVENT_FLAG_WHILE_CHARMED flag
- Scripts/Icecrown: fix attacking creatures from Blessed Banner
- Scripts/Borean Tundra: Rewrite several scripts (#31708)
- Core/Players: Use ChrRaces::Alliance instead of ChrRaces::BaseLanguage to determine faction
- Core/NetworkIO: updated SMSG_ADDON_INFO, SMSG_CLIENTCACHE_VERSION, SMSG_MOTD
- Core/GameObjects: Fix crash with FishingHole gameobjects that have minSuccessOpens > maxSuccessOpens in gameobject_template (#31718)
- Core/PacketIO: Reduce differences between branches
- Core/PacketIO: Reduce differences between branches
- Core/DataStores: Reduce differences between branches
- Core/Packets: CMSG_CANCEL_TRADE handler
- Core/Packets: CMSG_NAME_QUERY (QueryPlayerName) handler
- Core/Packets: SMSG_NAME_QUERY_RESPONSE (PlayerNameResponse) handler
- Core/Players: Directly store PlayerTalent in talent map, not as pointer
- Core/Packets: updated char rename customize and factionchange packets
- Core/Misc: Fix nopch build
- Core/PacketIO: Migrate CMSG_INSPECT, SMSG_INSPECT_TALENT and SMSG_TALENTS_INFO to packet classes
- Scripts/Commands: Fix integer underflow in .pinfo ban time display (#31727)
- Core/Scripts: fix Improved Healthstone aura validation in Soulwell's script (#31736)
- Dep/fmt: Upgrade to 10.2.1
- Core/LFG: Fix build after fmt version upgrade
- Scripts/BlackwingLair: improve Nefarian's summon handling (#31745)
- Core/GameObject: Fishing holes with zero min and max success opens should not despawn (#31719)
- Core/Objects: Call base class Update function for Unit and GameObject (currently does nothing)
- Core/Objects: Move EventProcessor update to WorldObject::Update
- Core/Objects: implement internal heartbeat timer for WorldObjects
- Core/Player: moved the periodic group update mechanic into heartbeat handling
- Core/Units: moved cyclic spline synchronization mechanic heartbeat handling
- Core/Player: moved indoors/outdoors aura interrupting mechanic into heartbeat and movement handling
- Scripts/Serpentshrine Cavern: Rewrite Lurker (#31728)
- Dep/jemalloc: Fix build on arm64
- Misc/Config: Config file option description grammar improvements (#31756)
- Scripts/Serpentshrine Cavern: Rewrite Morogrim (#31733)
- Core/Entities: force CombatManager revalidation after applying charm
- Scripts/BlackwingLair: add missing one-time validation in Nefarian's SAY_XHEALTH
- Core/Movement: force destination finding in HomeMovementGenerator
- Core/Misc: Replace some sprintf with Trinity::StringFormat (#31740)
- Build: Enable debug format flag -ggdb3 instead of -g by default for debug builds
- Build: Partial revert of 2b38f40988d0e0fab5b86ba82812e79681c77363
- Scripts/Hellfire Ramparts: Rewrite Omor the Unscarred (#31743)
- Core/Pets: Charmed units will properly return near owner after target death (#31748)
- Core/Misc: Move fmt::formatter forward declaration to a common header to reduce number of replacements needed when upgrading fmt to new major version
- Core/PacketIO: Convert SMSG_FLIGHT_SPLINE_SYNC to packet class (#31755)
- Core/GameObject: Mage Portals and Refreshment Tables should be usable when the creating Mage is on another map or offline as long as you remain in group (#31730)
- Scripts/Spells: Rewrite warlock Soulwell using spells that summon different object ids (that create different item ids) instead of scripting soulwell object to do the selection
- SQL: Rename
- Scripts/Hellfire Ramparts: Update Gargolmar (#31774)
- Core/StatSystem: fix stale UNIT_FIELD_ATTACK_POWER_MODS on AP modifier sign change
- Revert "Core/StatSystem: fix stale UNIT_FIELD_ATTACK_POWER_MODS on AP modifier sign change"
- Core/AI: prevent triggering Alert (stealth pre-detection system) for Player immuned units
- Scripts/VioletHold: fix Erekem adds AI
- Core/AI: fix _returnToStart handling in ScriptedEscortAI
- Build: Enable /utf-8 flag for msvc
- Core/Chat: Remove fmt::sprintf from headers
- Dep/fmt: Update to 12.0.0
- Scripts/Commands: Fix build after 396e6117c5b7e682c08a959f9c563a2b5f1110bd
- Core/Common: fixed nopch build for msvc compilers (#29516)
- Core/Movement: Remove unsafe target resetting in TimedFleeingMovementGenerator::Finalize (starts new movement inside MotionMaster::DirectAdd)
- Revert "Update logo URL in README.md (#31497)" (#31823)
- Dep/jemalloc: Update to 5.3.1
- Scripts/Hellfire Ramparts: Rewrite Vazruden (#31772)
- Core/Talents: Reduce differences between branches Renamed 'talent spec' to 'talent group' since this name was shadowing character specializations
- Core/PacketIO: Migrate SMSG_INITIAL_SPELLS to packet class
- Core/PacketIO: Migrate HandleMovementOpcodes to packet class
- Core/Items: Rename ItemTemplate spells fields to reduce differences between branches
- Core/Players: Fix cherry-pick conflicts
- Core/Movement: Split ReadMovementInfo into reading and validation functions
- Core/Movement: Stop movement and clear player movement flags from possessed units on possess end
- Core/Movement: Refactor WorldSession::IsRightUnitBeingMoved to validate and return moved unit in one step
- Core/Movement: Fixed CMSG_DISMISS_CONTROLLED_VEHICLE handler assigning movement info to incorrect unit
- Core/PacketIO: Migrate CMSG_PAGE_TEXT_QUERY/SMSG_PAGE_TEXT_QUERY_RESPONSE to packet classes and fix SMSG_PAGE_TEXT_QUERY_RESPONSE for cases where page text does not exist
- Core/Packets: Added CMSG_TIME_SYNC_REQ and SMSG_TIME_SYNC_RESP packets
- Core/Misc: Reorder packet classes to reduce differences between branches
- Core/Packets: Added SMSG_TUTORIAL_FLAGS
- Core/Packets: Added SMSG_SEND_UNLEARN_SPELLS and SMSG_ACTION_BUTTONS
- Core/Packets: updated AccountData packets
- Core/Misc: Fix file headers
- Core/PacketIO: Use default compiler generated copy and move operations in WorldPacket
- Core/Creatures: Rename CreatureModelInfo::modelid_other_gender to displayId_other_gender
- Core/Packets: Added SMSG_NEW_WORLD and CMSG_MOVE_WORLDPORT_ACK Also fixed wrong glyph index define
- Core/PacketIO: Migrate CMSG_MESSAGECHAT, SMSG_MESSAGECHAT and SMSG_GM_MESSAGECHAT to packet class
- Core/Chat: Reduce differences between branchese in AddonChannelCommandHandler and Chat::Initialize
- Core/Packets: updated SMSG_INITIALIZE_FACTIONS
- Core/Packets: Added most of the chat packets
- Core/Players: Add setter function for PLAYER_NO_REAGENT_COST_1
- Core/Packets: updated SMSG_BINDPOINTUPDATE, SMSG_INVALIDATE_PLAYER, SMSG_LOGIN_SETTIMESPEED, SMSG_WORLD_SERVER_INFO
- Core/Packets: updated SMSG_EQUIPMENT_SET_LIST
- Core/PacketIO: Port speed change packets to classes
- Core/PacketIO: Port SMSG_MONSTER_MOVE/SMSG_MONSTER_MOVE_TRANSPORT to packet classes
- Core/Packets: Added the following packets: CMSG_QUESTGIVER_STATUS_MULTIPLE_QUERY SMSG_QUESTGIVER_STATUS_MULTIPLE CMSG_QUESTGIVER_STATUS_QUERY SMSG_QUESTGIVER_STATUS SMSG_AI_REACTION SMSG_ATTACKERSTATEUPDATE SMSG_ATTACKSTART SMSG_ATTACKSTOP SMSG_THREAT_UPDATE SMSG_HIGHEST_THREAT_UPDATE SMSG_SET_PROFICIENCY
- Core/Packets: updated EquipmentSet save packets
- Core/PacketIO: Updated SMSG_TRANSFER_PENDING and SMSG_TRANSFER_ABORTED
- Core/Packets: - updated/enabled CMSG_CHANNEL_DISPLAY_LIST, CMSG_CHANNEL_LIST, CMSG_JOIN_CHANNEL, CMSG_LEAVE_CHANNEL, SMSG_CHANNEL_LIST, SMSG_CHANNEL_NOTIFY_JOINED, SMSG_CHANNEL_NOTIFY_LEFT - updated CMSG_SET_SELECTION - updated CMSG_TUTORIAL_FLAG (removed CMSG_TUTORIAL_CLEAR, CMSG_TUTORIAL_RESET) - fixed null guid in EquipmentSetList - fixed struct of MonsterMove
- DB/Schema/Auth: Change
account.os to varchar(4)
- Core/Packets: Added the following packets:
- Core/Items: Change ItemTemplate::Flags to array (reduce diff between branches)
- Core/PacketIO: Migrate SMSG_AURA_UPDATE to packet class
- Core/Packets: Updated some of the movement flag opcodes
- Core/Spells: some work on auras and packets
- Core/Packets: Added SMSG_LEARNED_SPELLS packet
- Core/Packets: Added SMSG_SPELL_FAILURE, SMSG_SPELL_FAILED_OTHER, SMSG_SET_FLAT_SPELL_MODIFIER, SMSG_SET_PCT_SPELL_MODIFIER packets
- Core/PacketIO: Add missing field initialization
- Core/PacketIO: Migrate MSG_MOVE_TELEPORT_ACK and MSG_MOVE_TELEPORT to packet class
- Core/Packets: Added CMSG_SET_ACTION_BUTTON packet
- Core/Game: Fix several warnings about wrong data types
- Core/Packets: Added SMSG_SPELLNONMELEEDAMAGELOG
- Core/Spells: some updates to player spell and talent learning
- Core/PacketIO: Migrate SMSG_CAST_FAILED and SMSG_PET_CAST_FAILED to packet class
- Core: fixed few coverity issues and warnings
- Core: fixed gcc build
- Core/Spells: Fixed player spells with only spellpower scaling doing no damage
- Core/Items: Extract GetRandomPropertyPoints logic from GenerateEnchSuffixFactor
- Core/Battlegrounds: Port battleground timer renames from master branch and fix tests build
- Core/Items: Refactored ItemTemplate
- Core/Packets: moved chat packet building function to packet builder class
- Core/Items: remade inventory packets to new packet system
- Core/Misc: Rename struct BroadcastText to BroadcastTextEntry
- Core/Scripts: Rewrite Devour Magic Rewrite Devour Magic to use new spellscript hook OnEffectSuccessfulDispel.
- ItemTemplate: Fix warning about missing cases.
- Core/Achievements: Updated achievements - progress is currently not saved until a conversion of existing data from old to new criteria is made
- Core/Opcodes:
- Core/Quests: Rename unknown column in quest_template and send it in SMSG_QUEST_QUERY_RESPONSE
- Core/PacketIO: Add ItemDropQuantity to SMSG_QUEST_QUERY_RESPONSE
- Core/Units: Remove duplicate WorldSession::SendAttackStop, it was duplicating Unit::SendMeleeAttackStop
- Core/Units: Fixed AttackStop NowDead field being set for the wrong unit
- Core/Instances: fix parameter handling in InstanceScript::DoCastSpellOnPlayer
- Core/PacketIO: Correct SMSG_TEXT_EMOTE structure
- Core/Items: Ignore item charges for item effects types other than on use
- Core/Auras: Simplify AuraEffect::HandleModInvisibility
- SQL: Resolve auth update naming conflict between branches
- Core/Misc: Port some cherry-pick refactors
- Core/Movement: Add more info to logs in mover guid validation
- DB/SAI: Fix wrong path ids in waypoint reached events
- Core/Movement: Immediately launch new spline on ConfusedMovementGenerator initialization (#31846)
- DB/Gossip: Correct gossip menu id for Magister Sylastor
- Core/Misc: Port some cherry-pick refactors
- Core/Movement: Fixed deactivating movement generators when starting different movement with higher priority