Streaming WoW State via Addon → Python Memory Bridge menu

User Tag List

Results 1 to 3 of 3
  1. #1
    rxemi115566's Avatar Member
    Reputation
    9
    Join Date
    Oct 2017
    Posts
    18
    Thanks G/R
    0/8
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    Streaming WoW State via Addon → Python Memory Bridge

    Streaming WoW State via Addon → Python Memory Bridge

    I’ve been experimenting with building a WoW → external bridge that lets an addon stream structured JSON out of the client, and a separate Python tool that attaches to WoW’s memory space to capture and parse that data.

    It’s not a finished product, but it gives a clear idea of the approach and hopefully sparks ideas for other developers.

    What it does
    • The addon encodes game state (spells, talents, target data, player buffs, nearby enemies, etc.) into JSON wrapped between BRIDGESTART| … |BRIDGEEND.
    • A hidden frame inside the addon continuously updates this payload at ~0.1s ticks.
    • On the outside, the Python script scans WoW’s memory space for those bridge strings, tracks sequence numbers, and extracts the most recent full JSON block.
    • Once an anchor is found, the tool keeps up with live updates and prints the payload in real time, so you can consume it with other tools, log it, or feed it into analytics/rotation helpers.


    Example Payload
    Here’s a minimal snippet of what the extracted bridge data looks like when read from memory:

    Code:
    BRIDGESTART|{
      "sid":"0B07AB1471951812",
      "seq":"00000017",
      "target":{"name":"Training Dummy","health":1000,"healthMax":1000},
      "enemies":{"melee":1,"ranged":0},
      "playerAuras":[{"id":5277,"name":"Evasion","remaining":9.999}]
    }|BRIDGEEND
    Memory Regions
    The scanner looks through committed, readable private/mapped regions (`MEM_COMMIT` + `MEM_PRIVATE` / `MEM_MAPPED`) with protections like:
    • PAGE_READWRITE
    • PAGE_WRITECOPY
    • PAGE_EXECUTE_READWRITE
    • PAGE_EXECUTE_WRITECOPY


    It avoids PAGE_NOACCESS and PAGE_GUARD, skipping over irrelevant regions. Once a candidate anchor is discovered, it narrows down by tracking pointer references so you don’t need to full-scan every cycle.

    Main Difficulty: The Anchor
    The hardest part right now is reliably sticking to the anchor address where the JSON buffer starts.
    • Anchors can shift around after reloads, zoning, or memory churn.
    • I’m using candidate managers and pointer watchers to re-acquire when it goes stale, but it’s not bulletproof.
    • I’m sure there are more robust techniques (better pointer chasing, signatures, or alternative anchoring strategies), but I don’t have time to dig deeper right now.



    If anyone has ideas on more stable anchor acquisition or smarter region scanning, please shout! That’s the biggest weak point at the moment.

    PS: You better off calculating buff remaining time externally, apparently calculating every buff at every tick adds load to this! I kept the code in just for the reference.


    GJ.png
    DATAPY.png
    Attached Files Attached Files
    Last edited by rxemi115566; 21 Hours Ago at 05:01 PM.

    Streaming WoW State via Addon → Python Memory Bridge
  2. #2
    rxemi115566's Avatar Member
    Reputation
    9
    Join Date
    Oct 2017
    Posts
    18
    Thanks G/R
    0/8
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Extra Tools Included

    1. Hekili_KSWait Addon
    I made a lightweight addon to improve Outlaw Rogue gameplay when using Hekili.
    • No need to manually add a separate icon – this addon overwrites Hekili’s primary icon whenever you are channeling Killing Spree (or caught inside GCD).
    • Instead of showing the next ability, it forces the icon to display WAIT.
    • The goal is simple: stop you from clipping your channel or spamming during downtime.


    ---

    2. Scanner (Session Address Finder)
    The scanner is a small Python helper that finds a stable address in memory for the session.
    • Needs to be re-run each new session (fresh WoW launch).
    • Once you have the address, it stays stable for the whole gameplay session.
    • It narrows down candidates by scanning memory regions and filtering until only the correct pointer is left.


    ---

    3. OldRotation (Executor)
    This is my external executor that presses keys automatically based on the decoded bridge output.
    • I bound it to the ` key – holding that key down starts the rotation execution.
    • It maps decoded values (like spell names, key tokens, etc.) into my own keybinds.
    • When the addon / bridge says WAIT, the executor respects it and does nothing.
    • Otherwise, it presses the correct key in sync with the rotation.


    ---

    Keybind Notes
    • Trigger Key: ` (backtick) → holds down to run the rotation.
    • Executor maps to your custom setup (e.g. `Q`, `E`, `R`, `F`, `1`, `2`, `3`, etc).
    • “=” is also pressed periodically for certain actions.


    This combo (Addon + Scanner + Executor) makes it possible to have a fluid, external rotation runner that still respects channeling and downtime.


    HEK.png
    Hekili1.png
    Hekili2.png
    Hekili3.png
    Hekili4.png
    Attached Files Attached Files

  3. #3
    rxemi115566's Avatar Member
    Reputation
    9
    Join Date
    Oct 2017
    Posts
    18
    Thanks G/R
    0/8
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Finally, I created my own Looking For Group player filter, where i externally accessed an anchor to retrieve player data example: "PlayerName-ServerName", then used Warcraftlogs API's to fetch user statistics for Mythic Dungeons, calculating their performance/interrupts etc. In Otherwords, whenever i created a room, i picked best of the best that fit me. - I'll only share the addon sample, which is again via json, using Markers for End and Start - I wont share python code on this one, because i may have some sensitive info in there and lazy to clean it up, maybe it will spark some ideas!
    Attached Files Attached Files

Similar Threads

  1. Reduce WoW Lag via Registry Edits via a Program
    By leoj in forum World of Warcraft Bots and Programs
    Replies: 26
    Last Post: 05-18-2008, 09:19 PM
  2. Talk to opposite Faction via Addon *Works*
    By Cern in forum WoW UI, Macros and Talent Specs
    Replies: 15
    Last Post: 01-18-2008, 09:48 PM
  3. Talk to opposite Faction via Addon Upload
    By issacobra in forum WoW UI, Macros and Talent Specs
    Replies: 15
    Last Post: 12-30-2007, 08:50 AM
  4. Hacking WoW profiles via myspace.
    By Stephen Colbert in forum World of Warcraft Bots and Programs
    Replies: 57
    Last Post: 08-11-2007, 10:54 PM
  5. Download WoW patches via Torrent
    By Battlemidge in forum World of Warcraft Bots and Programs
    Replies: 3
    Last Post: 11-23-2006, 11:55 PM
All times are GMT -5. The time now is 02:09 PM. Powered by vBulletin® Version 4.2.3
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved. User Alert System provided by Advanced User Tagging (Pro) - vBulletin Mods & Addons Copyright © 2025 DragonByte Technologies Ltd.
Google Authenticator verification provided by Two-Factor Authentication (Free) - vBulletin Mods & Addons Copyright © 2025 DragonByte Technologies Ltd.
Digital Point modules: Sphinx-based search