Skip to content
View in the app

A better way to browse. Learn more.

WRobot

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

All Activity

This stream auto-updates

  1. Yesterday
  2. Xprodigy joined the community
  3. Stefano_W joined the community
  4. sookgame joined the community
  5. Mage rotation with Nova logic glhf Epoch Mage Plugin Suite.cs EpochMagePanicNovaOnly.cs Mage.cs
  6. Ratorban joined the community
  7. danielofodao joined the community
  8. Last week
  9. Barmaley joined the community
  10. masterned joined the community
  11. 杨小过 joined the community
  12. vvvvhex joined the community
  13. kytal joined the community
  14. Works great how hard would it be to convert this over for Druid. Not sure if you have the prompts saved. Been trying to get Claude to convert it over
  15. can you do a thisa for ascension server looks like we have same issue there
  16. YourMoma started following Profiles - Wotlk
  17. How you make the rotation to work in this server?, I upload the profile fightclass example Druid feral , I’m just lv3 bot don’t do anything just auto attack, I have try so many profiles. Also do u have any for PvP?
  18. This is working in ascension just like instructions said, anything else won’t work, but I have a problem loading the fight class profile, bot does not execute it just attacks, anyone know how I can fix this problem.
  19. Earlier
  20. Hello, why is bot not flying when im killed, when there is fly mount available for that, aways chose to walk to the corpse. Is there any option to make it use fly in ghost form?
  21. maceel95 started following fly when dead
  22. Hi I've tried the free trial version to see if I wanted to buy, but the when the bot is moving to next spot it pauses for 0,5 sec and then moving on to next spot. I found that when disable fight class then there is no issue with movement, but then he basically can fight mobs. I've tried to different fight classes, but both of them make the bot pause inbetween movements. 1) Hunter [Marksman] [Leveling 1-80] [WotLK] - Dreamful 2) Hunter - [marksman][beastmastery][WIP] Please see video here:
  23. Anyone able to advice or assist on this?
  24. Is there anyway to just make bot run around in the BG and die or die while trying to kill people? This way at least it shows to others that I am engaged and just looked like a noob instead of keep running into wall or just stucked there and disconnect due to too many Wrobot blockage. I am in private server of 3.3.5a
  25. I was in WoW Legion, on the Evermoon server, doing the absorbing mission and then going to the beach where I had to absorb 20 water elementals. But when I got close and absorbed them, the number of water elementals in the mission did not go up.
  26. shosho replied to clyney's topic in General discussion
    possible for a 4 days trial? can't test if it works fine different wow on mrivate servers
  27. I need a boot for this expansion; I don’t think there is one yet.
  28. Hello! I saw that you managed to fix this issue by finding a 32-bit client for Legion. I am currently facing the exact same problem because WRobot doesn't support the 64-bit executable. Could you please share how you made it work or where you found the working 32-bit WoW.exe for the Legion private server? A quick step-by-step or a link would be a lifesaver! Thanks in advance!
  29. Hello WRobot Support Team, I am writing to ask for your help regarding my current license. I have an active subscription, but unfortunately, it does not seem to unlock or work with the WoW Legion expansion. When I try to use it for Legion, the bot acts as if I don't have the proper authorization. Could you please check my license status and help me resolve this issue? Thank you in advance for your time and assistance. Best regards,
  30. bonniek changed their profile photo
    I've been using [Free] Wholesome Auto Quester 1.0.0, and it's honestly amazing. It picks up exactly where I left off and continues the quests seamlessly. Everything works just as intended and follows the recommended flow perfectly. Really impressive tool, great job on this!
    I've been using [Free] Project Wholesome - WOTLK Fightclasses (all 10 included) 1.0.xxx, and so far it's been great. It correctly detected my class right away and is handling the rotations really well. Everything feels smooth and consistent during combat. Really solid work, appreciate the effort put into this!
  31. Droidz commented on nax's bug report in Bug Tracker
    Hello, Thanks for the suggestion. There's already a protection in place that handles this case, and so far it's been holding up well against Lua-side detection. If you need this on a specific server, a plugin or a fight class override is the cleaner route.
  32. Hello, I can't read the logs on the video.
  33. you need to use this. https://wrobot.eu/files/file/2067-paidfix-turtle-spell-name/
  34. nax commented on nax's bug report in Bug Tracker
    part of my lua dump of a server i forgot the name of, https://pastebin.com/p7HmxDfV
  35. nax commented on nax's bug report in Bug Tracker
    its not letting me update the main post, here is the code in you're syntext : GetSpellIdByName : public static int GetSpellIdByName(string spellName, out int rank) { rank = 0; try { uint GetSpellIdByNameAddr = 0x00540200; // Allocate space for spell name string var nameBytes = System.Text.Encoding.UTF8.GetBytes(spellName + "\0"); uint nameSpace = wManager.Wow.Memory.WowMemory.AllocData.Get(nameBytes.Length); if (nameSpace <= 0) return 0; // Allocate space for rank (int = 4 bytes) uint rankSpace = wManager.Wow.Memory.WowMemory.AllocData.Get(4); // Allocate space to store the return value (spell ID from eax) uint spellIdSpace = wManager.Wow.Memory.WowMemory.AllocData.Get(4); if (nameSpace <= 0 || rankSpace <= 0 || spellIdSpace <= 0) return 0; // Write spell name to memory wManager.Wow.Memory.WowMemory.Memory.WriteBytes(nameSpace, nameBytes); wManager.Wow.Memory.WowMemory.Memory.WriteInt32(rankSpace, 0); wManager.Wow.Memory.WowMemory.Memory.WriteInt32(spellIdSpace, 0); var asm = new[] { wManager.Wow.Memory.WowMemory.CallWrapperCodeRebaseEsp(GetSpellIdByNameAddr, 8, nameSpace, rankSpace), // Store the spell ID (eax) to spellIdSpace "mov ecx, " + spellIdSpace, "mov [ecx], eax", wManager.Wow.Memory.WowMemory.RetnToHookCode }; wManager.Wow.Memory.WowMemory.InjectAndExecute(asm); // Read back the spell ID and rank int spellId = wManager.Wow.Memory.WowMemory.Memory.ReadInt32(spellIdSpace); rank = wManager.Wow.Memory.WowMemory.Memory.ReadInt32(rankSpace); // Free allocated memory wManager.Wow.Memory.WowMemory.AllocData.Free(nameSpace); wManager.Wow.Memory.WowMemory.AllocData.Free(rankSpace); wManager.Wow.Memory.WowMemory.AllocData.Free(spellIdSpace); return spellId; } catch (System.Exception ex) { Logging.WriteError("Error getting spell ID by name: " + ex.Message); return 0; } } CastSpell : public static void CastSpell(int spellid, ulong guid = 0) { try { uint CastSpell = 0x080DA40; uint guidLow = (uint)(guid & 0xFFFFFFFF); uint guidHigh = (uint)(guid >> 32); var asm = new[] { wManager.Wow.Memory.WowMemory.CallWrapperCodeRebaseEsp(CastSpell, 0x14, spellid , 0, guidLow, guidHigh, 0), wManager.Wow.Memory.WowMemory.RetnToHookCode }; wManager.Wow.Memory.WowMemory.InjectAndExecute(asm); } catch (System.Exception ex) { Logging.WriteError("Error casting spell: " + ex.Message); } }
  36. nax posted a bug report in Bug Tracker
    Hello @Droidz, I would like to propose an improvement to WRobot's spell casting functionality that enhances both evasion capabilities and reliability on servers that implement Lua-based detection mechanisms. Problem Statement Several private servers employ Lua hooks on the CastSpellByName function to detect and flag bot activity. The current implementation's reliance on this Lua function creates a detectable pattern that can be exploited for bot identification. Solution Overview I have developed two native methods that bypass the Lua layer entirely, thereby reducing the bot's detectable footprint: Method 1: Direct Spell ID Resolution The GetSpellIdByName method directly invokes the game's internal GetSpellIdByName function (0x00540200), retrieving both the spell ID and rank without requiring Lua interaction: public static int GetSpellIdByName(string spellName, out int rank) { rank = 0; try { uint GetSpellIdByNameAddr = 0x00540200; // Allocate space for spell name string var nameBytes = System.Text.Encoding.UTF8.GetBytes(spellName + "\0"); uint nameSpace = wManager.Wow.Memory.WowMemory.AllocData.Get(nameBytes.Length); if (nameSpace <= 0) return 0; // Allocate space for rank (int = 4 bytes) uint rankSpace = wManager.Wow.Memory.WowMemory.AllocData.Get(4); // Allocate space to store the return value (spell ID from eax) uint spellIdSpace = wManager.Wow.Memory.WowMemory.AllocData.Get(4); if (nameSpace <= 0 || rankSpace <= 0 || spellIdSpace <= 0) return 0; // Write spell name to memory wManager.Wow.Memory.WowMemory.Memory.WriteBytes(nameSpace, nameBytes); wManager.Wow.Memory.WowMemory.Memory.WriteInt32(rankSpace, 0); wManager.Wow.Memory.WowMemory.Memory.WriteInt32(spellIdSpace, 0); var asm = new[] { "push " + rankSpace, // Push pointer to rank (2nd arg) "push " + nameSpace, // Push pointer to name (1st arg) "call " + GetSpellIdByNameAddr, "add esp, 8", // Store the spell ID (eax) to spellIdSpace "mov ecx, " + spellIdSpace, "mov [ecx], eax", "retn" }; wManager.Wow.Memory.WowMemory.InjectAndExecute(asm); // Read back the spell ID and rank int spellId = wManager.Wow.Memory.WowMemory.Memory.ReadInt32(spellIdSpace); rank = wManager.Wow.Memory.WowMemory.Memory.ReadInt32(rankSpace); // Free allocated memory wManager.Wow.Memory.WowMemory.AllocData.Free(nameSpace); wManager.Wow.Memory.WowMemory.AllocData.Free(rankSpace); wManager.Wow.Memory.WowMemory.AllocData.Free(spellIdSpace); return spellId; } catch (System.Exception ex) { Logging.WriteError("Error getting spell ID by name: " + ex.Message); return 0; } } Method 2: Direct Spell Casting with GUID Support The CastSpell method invokes the native spell casting function (0x080DA40) directly, accepting a GUID parameter to eliminate the need for target selection: public static void CastSpell(int spellid, ulong guid = 0) { try { uint CastSpell = 0x080DA40; uint guidLow = (uint)(guid & 0xFFFFFFFF); uint guidHigh = (uint)(guid >> 32); var asm = new[] { "push 0", "push " + guidHigh, "push " + guidLow, "push 0", "push " + spellid, "call " + CastSpell, "add esp, 0x14", "retn" }; wManager.Wow.Memory.WowMemory.InjectAndExecute(asm); } catch (System.Exception ex) { Logging.WriteError("Error casting spell: " + ex.Message); } } Performance Optimization While repeated calls to GetSpellIdByName could introduce minor latency, this can be mitigated through result caching with cache invalidation upon skill acquisition or update events. Benefits Eliminates dependency on the Lua CastSpellByName function, significantly reducing detection risk on Lua-hook protected servers Supports targeted spell casting without requiring target changes

Account

Navigation

Search

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.