-
Wrobot Quester profile Tool
🚀 WRobot Quester Profile Creator (Free Online Tool)Stop manually editing XML files and build WRobot Quester profiles in seconds. This free web-based tool automatically looks up quest information, organizes quests by prerequisite chains, detects parallel quest groups, and generates a ready-to-use Quester XML profile. ✨ Features✅ Quest Lookup by ID Automatically retrieves quest names, levels, and requirements ✅ Automatic Quest Chain Sorting Organizes quests in the correct prerequisite order ✅ Parallel Quest Detection Identifies quests that can be completed concurrently ✅ Instant XML Generation Download a ready-to-use Quester profile with one click ✅ Save & Load Profiles Store profiles directly in your browser ✅ Settings ID Support Sync configurations across multiple devices ✅ No Installation Required Fully web-based and completely free 📖 How It Works1. Paste your quest IDs (comma, space, or newline separated) 2. Click Lookup Quest names and levels are retrieved automatically 3. Click Sort by Quest Chain The tool organizes quests into the proper progression order 4. Download the generated .xml Load it into WRobot and you're ready to go 🎯 Why Use It?Manually building Quester profiles can be time-consuming and error-prone, especially for larger quest chains. This tool automates the process by: Resolving quest relationships Ordering quests correctly Grouping concurrent quests Generating clean XML output Spend less time editing files and more time testing your profiles. 🔗 Try It HereWRobot Quester Profile Creator https://backend-development.net/Wrobot-Quester-Tool/ Feedback, bug reports, and feature suggestions are always welcome.
-
nax started following Wrobot Quester profile Tool
-
[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); } }
-
nax started following [Security] CastSpellByName
-
[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
-
-
need help with wowdb
check the file path to make sure its correct and check permissions on the file to be able to be read.
- Client Instant Crash on Quest Accept – Turtle WoW Only
-
[Wotlk] Looking for WoW API
This script builds a WotLK 3.3.5a global.lua definition file for VS Code. It generates documented WoW API globals (with parameters and return types where available) so you get better autocompletion, signature help, and fewer “unknown global” warnings while developing addons. Script.py
- Computer on?
-
Daximus reacted to a post in a topic:
Matenia's HumanMasterPlugin, all Fightclasses and experimental projects for later expansions, including a Quester
-
Matenia's HumanMasterPlugin, all Fightclasses and experimental projects for later expansions, including a Quester
No, fightclasses can use dlls.
-
- [PAID]Make WRobot work on Ascension Live and Epoch wow (https://ascension.gg)
-
nax started following Bot starts immediately logging out on Turtle wow and Safe to bot on Turtle WoW?
-
Safe to bot on Turtle WoW?
https://wrobot.eu/byme/CompatibilityReporting/index.php
-
Bot starts immediately logging out on Turtle wow
Movement flag
-
nax reacted to a post in a topic:
How can I summon "Field Repair Bot 75B" to sell junk and repair gear?
-
Banned on Warmane.
You deserve a refund. They’re not using the Auctioneer addon for detection at all — that’s just a cover. In reality, they’re exploiting GetThreadContext to extract breakpoints from WRobot through a remote code execution (RCE) technique. Additionally, they’re manipulating movement flags to gain unfair advantages.
-
Banned on Warmane.
Warmane does detect wrobot.
-
Error(s) for Wrobot
Read the requirements