The first known working implementation of Skyriding (Advanced Flying / Dragonriding) for TrinityCore master branch (retail).
As of March 2026, the official TrinityCore PR #30199 by Traesh has been unmerged since August 2024. This patch builds on that work and adds the critical missing piece: the Vigor aura (372773), which is required by the WoW client's DB2 spell data to allow active Skyriding abilities.
- Skyriding: Momentum-based flight (diving, climbing, physics-based movement)
- Steady Flight: Traditional static flying (hover, constant speed)
- Flight Style Toggle: In-game button to switch between Skyriding and Steady Flight
- Active Abilities: Skyward Ascent (Lift Off), Surge Forward, Whirling Surge
- Auto-learning: All abilities automatically taught on login (Level 10+)
- Flying everywhere: Bypasses incomplete AreaMountFlags in DB2
Tested on: TrinityCore master, WoW 12.0.1 Build 66337
cd /path/to/trinitycore-source
git apply skyriding_trinitycore.patchcp spell_advanced_flying.cpp src/server/scripts/Spells/cd /path/to/build
cmake /path/to/trinitycore -DCMAKE_INSTALL_PREFIX=/path/to/server -DTOOLS=0 -DSCRIPTS=static
make -j$(nproc) worldservermysql -u user -p world < skyriding_sql.sqlcp build/bin/worldserver /path/to/server/bin/worldserver
# restart worldserver| File | Description |
|---|---|
skyriding_trinitycore.patch |
Unified git patch for all C++ source changes (9 files) |
spell_advanced_flying.cpp |
New spell script file (copy to src/server/scripts/Spells/) |
skyriding_sql.sql |
Database setup (spell_script_names + character cleanup) |
SKYRIDING_GUIDE.md |
Detailed technical guide with explanations and troubleshooting |
The WoW client's DB2 data (SpellAuraRestrictions) requires CasterAuraSpell = 372773 (Vigor/Dragonrider Energy) for the active Skyriding abilities:
| Spell | Name | Requires Vigor |
|---|---|---|
| 372608 | Surge Forward | Yes |
| 372610 | Skyward Ascent | Yes |
| 361584 | Whirling Surge | Yes |
Without the Vigor aura on the player, the WoW client itself blocks the cast and shows "Not yet learned" - no packet ever reaches the server. This is why previous implementations (including PR #30199) couldn't get the active abilities working.
The fix: Cast spell 372773 on the player when Skyriding mode is active. This satisfies the client-side CasterAuraSpell check and allows the abilities to fire.
| File | Change |
|---|---|
Player.cpp |
Remove old AddAura(404468) hack, add AddMoveImpulse() method |
Player.h |
Declare AddMoveImpulse() |
Unit.cpp |
Bypass AllowFlyingMounts area check for players |
SpellAuraEffects.cpp |
Mount handler: enable Skyriding + Vigor on mount, clean up on dismount |
SpellMgr.cpp |
Mark flight auras as non-saveable |
MovementPackets.h/cpp |
New MoveAddImpulse packet class |
Opcodes.cpp |
Enable SMSG_MOVE_ADD_IMPULSE |
spell_script_loader.cpp |
Register the new script |
spell_advanced_flying.cpp |
New file - all spell scripts + PlayerScript |
- Built with Claude Code (Anthropic)
- Based on TrinityCore PR #30199 by Traesh
- Reference: TheGhostGroup/DragonCore
GPL v2 (same as TrinityCore)