All Activity
- Yesterday
-
Xprodigy joined the community
-
Stefano_W joined the community
-
sookgame joined the community
-
[free] Epoch Mage rotation with frost nova plugin
Mage rotation with Nova logic glhf Epoch Mage Plugin Suite.cs EpochMagePanicNovaOnly.cs Mage.cs
-
chronic743 started following [free] Epoch Mage rotation with frost nova plugin
-
Ratorban joined the community
-
danielofodao joined the community
- Last week
-
Barmaley joined the community
-
masterned joined the community
-
杨小过 joined the community
-
vvvvhex joined the community
-
kytal joined the community
-
Resto Shaman v10.0 - Predictive Anti-Overheal Edition [BETA]
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
- 5 comments
- 1 review
-
bigminer started following Resto Shaman v10.0 - Predictive Anti-Overheal Edition [BETA]
- [PAID]fix turtle spell name.
-
ROSKI started following [PAID]fix turtle spell name.
-
YourMoma started following Profiles - Wotlk
-
If you need to run wrobot on Ascension.....
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?
-
ROSKI started following If you need to run wrobot on Ascension.....
- [PAID]Make WRobot work on Ascension Live and Epoch wow (https://ascension.gg)
-
- Earlier
-
fly when dead
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?
-
maceel95 started following fly when dead
-
Pauses inbetween movement despite MS changes
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:
-
kolovez started following Pauses inbetween movement despite MS changes
-
Battleground WOTLK 3.3.5a
Anyone able to advice or assist on this?
-
Battleground WOTLK 3.3.5a
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
-
Fruitard started following Battleground WOTLK 3.3.5a
-
The absorbent mission doesn't work
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.
-
free trial
possible for a 4 days trial? can't test if it works fine different wow on mrivate servers
- Is there a boot for the Midnight?
- Is there a boot for the Midnight?
- License Issue - Legion Expansion Not Unlocking
-
Solved: Game version incorrect
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!
-
License Issue - Legion Expansion Not Unlocking
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,
-
bonniek changed their profile photo
-
[Free] Wholesome Auto Quester
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!
- 35 comments
- 13 reviews
-
-
[Free] Project Wholesome - WOTLK Fightclasses (all 10 included)
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!
- 281 comments
- 29 reviews
-
-
[Security] CastSpellByName
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.
- Spirit Healer resurrection
-
Spirit Healer resurrection
Hello, I can't read the logs on the video.
-
Bot wont cast spell
you need to use this. https://wrobot.eu/files/file/2067-paidfix-turtle-spell-name/
-
[Security] CastSpellByName
part of my lua dump of a server i forgot the name of, https://pastebin.com/p7HmxDfV
-
[Security] CastSpellByName
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); } }
-
[Security] CastSpellByName
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