Skip to content

Manuelisus/skyriding-trinitycore

Repository files navigation

Skyriding / Dragonriding for TrinityCore Master (Retail 12.x)

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.

What This Enables

  • 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

Quick Start

Tested on: TrinityCore master, WoW 12.0.1 Build 66337

1. Apply the C++ patch

cd /path/to/trinitycore-source
git apply skyriding_trinitycore.patch

2. Copy the spell script

cp spell_advanced_flying.cpp src/server/scripts/Spells/

3. Reconfigure CMake and compile

cd /path/to/build
cmake /path/to/trinitycore -DCMAKE_INSTALL_PREFIX=/path/to/server -DTOOLS=0 -DSCRIPTS=static
make -j$(nproc) worldserver

4. Apply SQL (on your world + characters database)

mysql -u user -p world < skyriding_sql.sql

5. Deploy and restart

cp build/bin/worldserver /path/to/server/bin/worldserver
# restart worldserver

Files

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

Why It Didn't Work Before (The Key Discovery)

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.

Modified Files

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

Credits

License

GPL v2 (same as TrinityCore)

About

Working Skyriding/Dragonriding implementation for TrinityCore Master (Retail 12.x) - First known working patch

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages