About This File
Paladin Tank Fight Class â wRobot Documentation
â ïļ WARNING: BETA VERSION This fight class is currently in beta. It may contain bugs, unfinished features, or unstable behavior. Use at your own risk. Feedback and bug reports are welcome.
Overview
Paladin Tank is an advanced wRobot fight class for Protection Paladin (WotLK / 3.3.5). It features a multi-threaded architecture with a lock-free AI movement system, intelligent blessing management, and smart combat positioning â all designed to maximize threat generation and party survival.
Features
⥠Multi-Threaded Architecture
The fight class runs three independent background threads:
- Rotation Thread â handles spell casting and out-of-combat logic
- Movement AI Thread â manages smart positioning and gap closing
- Combat Rotation AI Thread â runs the priority-based DPS/threat rotation
All threads use a lock-free design with volatile reference swaps, meaning zero blocking and maximum responsiveness.
âïļ Pilot Override System
Manual player movement (W, A, S, D, Q, E) takes absolute priority over AI control:
- All AI movement stops immediately when you press movement keys
- Pathfinding is halted
- After releasing keys, AI waits ~1 second before resuming
- Smooth, conflict-free transition â the player always wins
ðĪš Combat Rotation
The rotation follows a priority-based system optimized for Threat Per Second (TPS):
| Priority | Spell |
|---|---|
| 1 | Holy Shield |
| 2 | Hammer of Wrath (execute phase) |
| 3 | Hammer of Justice (AoE / stun) |
| 4 | Avenger's Shield (pull / AoE) |
| 5 | Holy Wrath (Undead/Demons) |
| 6 | Hammer of the Righteous (AoE threat) |
| 7 | Shield of Righteousness |
| 8 | Judgement of Light / Wisdom |
| 9 | Consecration (mana permitting) |
ðĪ Blessing System
The class features a fully automated intelligent blessing manager:
- Applies and refreshes Blessing of Kings, Sanctuary, Wisdom, or Might based on party member class and role
- Supports Greater Blessings for large groups
- Uses a buff cache (5-second TTL) to avoid spamming Lua calls
- Cooldown tracking prevents double-blessing
- Handles edge cases like timezone-related timer bugs
ðĄïļ Aura Management
Automatically maintains the appropriate aura:
- Devotion Aura (default tank aura)
- Retribution, Concentration, Crusader, and Resistance Auras based on context
- Righteous Fury always kept active
ð Seal Management
Dynamically selects and maintains the best Seal:
- Seal of Vengeance / Corruption for sustained threat
- Seal of Wisdom / Light for mana recovery when needed
ð Defensive Cooldowns
Automated usage of defensive abilities:
- Ardent Defender â at low HP
- Divine Protection â emergency
- Lay on Hands â critical HP threshold
- Sacred Shield â maintained on self
- Divine Plea â used when mana is low (configurable threshold)
ð Party Support
The class actively monitors and supports party members:
- Righteous Defense â taunts enemies off party members
- Hand of Reckoning â single-target taunt
- Hand of Freedom â removes movement-impairing debuffs
- Hand of Protection / Sacrifice / Salvation â situational party cooldowns
- Cleanse â removes harmful debuffs
- Divine Intervention / Divine Sacrifice â emergency party saves
ð Smart Positioning AI
-
5â30 yards: Uses pathfinding (
MovementManager.MoveTo) for gap closing - 0â5 yards: Uses direct movement (forward/turn/backward) for fine positioning
- Anti-oscillation system prevents jerky back-and-forth movement
- Configurable turn threshold, hysteresis, and stabilization delay
Configuration
Key settings can be adjusted in the PaladinTankConfig class at the top of the file:
| Setting | Default | Description |
|---|---|---|
TurnThreshold
|
0.35 | Angular tolerance before turning (radians) |
TurnHysteresis
|
0.30 | Hysteresis to prevent jitter |
MovementStabilizationMs
|
400ms | Cooldown between movement decisions |
AIControlReturnDelayMs
|
1000ms | Delay before AI resumes after manual input |
LowManaThreshold
|
30% | Triggers mana-saving behavior |
EmergencyHPThreshold
|
20% | Triggers emergency defensive cooldowns |
ConsecrationManaThreshold
|
40% | Minimum mana to cast Consecration |
BlessingRefreshThreshold
|
120s | Refresh blessing if less than this time remains |
Logging verbosity can also be toggled individually (EnableAIDebugLogs, EnableApproachLogs, EnableBlessingDebugLogs).
Requirements
- wRobot with custom fight class support
- Protection Paladin (WotLK 3.3.5)
- Recommended talent build: standard 53/5/13 or similar Prot spec
- Holy Shield, Consecration, Avenger's Shield, and Hammer of the Righteous must be trained
Known Limitations (Beta)
- Some buff timer detection may be unreliable in certain server configurations (timezone issue workaround is included)
- Party role detection (Tank/Healer/DPS) is heuristic-based and may not always be accurate
-
Death Gripreference exists in the code but belongs to Death Knight â this may be a leftover from testing - Divine Shield is defined but emergency auto-use conditions may need tuning per use case
Fight class version: v374 (internal AI version: v212 lock-free)
What's New in Version 1.0.381 See changelog
Released
**Short patch summary (EN)**
`Paladin Tank v381_Lighted_optimized_bleesings _AI_DEBUG.cs`
- Added an adaptive movement tuning layer (RAM-only) to `TankMovementAI`.
- AI now learns from recent `strafe` / `backpedal` corrections and adjusts movement duration dynamically for similar combat situations.
- Added lightweight context-based movement profiles (rear/front/close enemy pressure, nearest rear threat, surrounded state).
- Added post-move evaluation of correction success (stability improvement) and updates to duration/selection bias.
- Reduced repeated ineffective corrections by penalizing recently failed repeated actions and favoring better alternatives.
- Integrated adaptive bias into both:
 - reactive movement duration (`strafe` / `backpedal`)
 - predictive planner candidate scoring and durations
- Learning is temporary (stored only in RAM, auto-pruned/expired), so it resets after script restart.
- Added optional debug logging entries for adaptive learning stats (when AI debug logs are enabled).
