Cross-class wildcard now also relaxes the EquippedItemSubClassMask gate on weapon-class proc talents so e.g. Maelstrom Weapon procs from any weapon a Paragon has equipped, not just the talent's stock melee subset (axe / mace / staff / fist / dagger / 2H sword/axe/mace). Three independent gates run in the proc chain; all three needed the bypass for the proc to actually fire: - Player::HasItemFitToSpellRequirements -- talent-attach check at item-equip / login time. Without this the passive talent aura never even applies for a Paragon wielding a non-stock weapon. - Player::CheckAttackFitToAuraRequirement -- per-swing match the proc engine uses to decide whether attackType + weapon is compatible with the aura's EquippedItemClass / SubClassMask. - Aura::IsProcTriggeredOnEvent (SpellAuras.cpp) -- per-event proc evaluator that calls Item::IsFitToSpellRequirements again, independently of the previous two. Was the proc-killing gate before this commit: talent attached, swing matched, but this evaluator returned 0 charges for any weapon outside the stock subclass mask, so no stack was ever applied. All three bypasses are gated on: - IsParagonWildcardCaller(this) (player class 12 + config flag Paragon.WildcardFamilyMatching = 1). - spellInfo->EquippedItemClass == ITEM_CLASS_WEAPON. ARMOR-class gates (shield) are deliberately left alone -- shield-required talents (Shield Specialization, Shield Block, etc.) still need an actual shield equipped. Each bypass also requires *some* weapon to be in the relevant slot (MAINHAND / OFFHAND / RANGED). Unarmed Paragons do not auto-activate every weapon-gated talent in the game. Net effect for Paragon characters with Maelstrom Weapon talented: proc fires from any melee weapon -- 1H sword / polearm / spear / fist / dagger / staff / 2H weapons / axes / maces. Stock Shamans and every other non-Paragon class are unchanged. Caveat (not addressed by this commit): the talent's stock ProcFlags (0xC00014) only fire on melee swings + melee abilities. Ranged auto-attacks (bow / gun / crossbow / wand) fire PROC_FLAG_DONE_RANGED_AUTO_ATTACK (0x40), which the proc engine never matches against this talent, so the new weapon-subclass bypass is moot for those weapons. Adding ranged-auto-attack support would require a Paragon-only ProcFlags expansion at the proc engine layer; deferred until requested. Co-authored-by: Cursor <cursoragent@cursor.com>
AzerothCore
Build Status
Introduction
AzerothCore is an open-source game server application and framework designed for hosting massively multiplayer online role-playing games (MMORPGs). It is based on the popular MMORPG World of Warcraft (WoW) and seeks to recreate the gameplay experience of the original game from patch 3.3.5a.
The original code is based on MaNGOS, TrinityCore, and SunwellCore and has since then had extensive development to improve stability, in-game mechanics, and modularity to the game. AC has also grown into a community-driven project with a significant number of contributors and developers. It is written in C++ and provides a solid foundation for creating private servers that mimic the mechanics and behavior of the official WoW servers.
Philosophy
Our main goal is to create a playable game server, offering a fully working in-game experience.
Here are the main points we focus on:
-
Stability
- We make sure all changes pass the CIs before being merged into the master branch.
-
Blizzlike content
- We strive to make all in-game content to be blizzlike. Therefore we have a high standard for fixes being made.
-
Customization
- It is easy to customize your experience using modules.
-
Community driven
- AzerothCore has an active community of developers, contributors, and users who collaborate, share knowledge, and provide support through forums, Discord channels, and other communication platforms.
Modules
AzerothCore is designed to be highly modular, allowing developers to extend and customize the game to suit their preferences or create unique gameplay experiences. This flexibility enables the addition of custom features, content, and modifications.
We have a lot of modules already made by the community, many of which can be found in the Module Catalogue.
Installation
Detailed installation instructions are available here.
Contributing
AzerothCore can also serve as a learning resource for aspiring developers who want to understand how WoW servers work, how MMORPGs are structured, how game server emulators are created, or to improve their C++ and SQL knowledge.
If you want to contribute to the project, you will find a lot of resources that will guide you in our wiki.
We also recommend you read our Contributor Covenant Code of Conduct.
Feel free to join our Discord server.
Click on the "⭐ Star" button to help us gain more visibility on Github!
Authors & Contributors
The project was born in 2016 based on SunwellCore. Unfortunately, SunwellCore was published without any git history, so on git there are no credits for all the contributors before 2016.
You can check the authors file for more details.
Important Links
- Doxygen documentation
- Website
- AzerothCore catalogue (modules, tools, etc...)
- Our Discord server
- Our wiki
- Our forum
- Our Facebook page
- Our LinkedIn page
License
- The AzerothCore source code is released under the GNU GPL v2
It's important to note that AzerothCore is not an official Blizzard Entertainment product, and it is not affiliated with or endorsed by World of Warcraft or Blizzard Entertainment. AzerothCore does not in any case sponsor nor support illegal public servers. If you use this project to run an illegal public server and not for testing and learning it is your own personal choice.
Special thanks
JetBrains is providing free open-source licenses to the AzerothCore developers.