T-1000 to T-2000: What This Is, and Where It’s Going (v2.0)
Written for a reader with no technical background and no World of Warcraft knowledge — a way to explain the system to someone encountering it for the first time.
The Essence
World of Warcraft generates real play — quests, gold, deaths, zones — and the game remembers all of it faithfully. Log back in and the gold is still there, the world hasn’t moved on without you. What the game doesn’t do is turn any of that into a story. This system catches the same data and builds one.
A player plays a character in the game, the same as always. Some of those characters are also given a voice the AI keeps consistent in a chat, ready whenever the player wants to talk, whether the game is even open or not. Others the player keeps voicing entirely themselves — for those, the AI instead builds coherent plot and backstory around them, which feeds back into how the player pictures them next. And running underneath both: a genuine two-way messaging system, asynchronous and threaded like a real correspondence — a dispatch — that lets a message travel from the chat back into the game itself and arrive as a letter the next time that character logs in.
The result isn’t a log of what happened. It’s a companion narrative, unique to your own characters, growing at the pace you actually play, getting richer the more you use it. Everything after this section explains how, in more depth than a first read needs.
The Architect
T-1000 (now). Before any of the mechanism below, there’s a person.
Ralph has played World of Warcraft for over twenty-one years. Some of his characters are older than his own children. Two rooms in his house are given over to it — genuinely, physically, not a joke about hobby space. For most of that time he also kept a journal — pen and paper, several volumes — play history, aims, thoughts, the story world already forming in his head around those characters, none of it existing anywhere the game itself could show.
At some point he started using AI to help write actual stories out of it. This system is what happened next.
That matters for who this is actually for. It isn’t built for a player chasing the current meta, and it isn’t trying to compete with that kind of play. It’s for the player who plays Affliction because that’s the spec that actually speaks to them, meta or not — who cares less whether a choice is optimal than what it says about who they are. Someone who was already building an elaborate story around their characters, in their own head, long before there was any system to help. This architecture exists to give that story somewhere to live, and something to help it keep growing.
A specific moment gives the clearest picture of who that is. Late at night, before logging off, walking a character home to their player house, choosing exactly where to sleep, and typing /sleep — then getting into a real bed and, for a moment, imagining it’s the one in the game. Hearing the wind off Razorwind Shores through canvas, because this particular story put a tent there instead of a house, for reasons the story itself explains. This is written for the player already doing that, whether or not they had a name for it before now.
What This Is
This isn’t a specification. The Master Architecture Document is the specification — precise, versioned, and binding. This document exists to answer a different question: why does any of this exist at all?
T-1000 (now), stated as intent. The honest answer is that this was never built as a companion to playing World of Warcraft. It is the game — or rather, a second game built out of the first one’s raw material. Quests, kills, gold, zones: the game generates this constantly, and remembers it faithfully — the gold is exactly where it was left, the world hasn’t moved on in the meantime. What doesn’t persist anywhere is the story. That only exists for as long as a player keeps carrying it themselves, in their own head. This architecture exists to catch the same data and build that story properly, one player’s characters at a time, in a shape unique to that player and nobody else.
Over months and years, that accumulation stops being just a record of what happened in-game. It becomes a way of mapping an internal landscape — a picture of these worlds, and what they mean to the person building them, that couldn’t exist any other way, and that no other player’s version of this would ever produce.
Real Stories, Real Chapters
T-1000 (now). The actual payoff isn’t the pipeline, or the data, or even the characters individually — it’s the stories that come out of the combination, and the fact that they’re real stories: proper plots and chapters that develop and pay off later, not flavour text stapled onto a screenshot.
A concrete example. Say a player spends an evening in-game adding a new room onto a character’s house — a housing feature, nothing narratively significant by itself. In the Story World, that becomes a story beat: a character with building work under way, a reason to talk about deliveries, delays, whether it’ll be done before winter. It sits there as an open thread, the way a real subplot would, ready to be picked back up the next time that character is asked about it.
That’s the value on offer — a companion narrative that grows alongside a player’s actual progress, remembering what it remembered, developing at the pace the player actually plays.
Three Worlds, One Architect
T-1000 (now). The system runs across three separate planes of reality, each with its own rules, connected deliberately rather than by accident.
The Real World is where the actual person sits — most of the time, simply playing the game at a desk, the same as any other player. Sometimes it’s writing code, or talking to an AI on a phone on the bus, or making design decisions. Nothing here is fiction.
The Game Worlds are the World of Warcraft servers themselves, running real characters doing real things — quests completed, gold earned, zones visited. This layer already has its own huge story: Blizzard’s own ongoing narrative, told through expansions, raid tiers, and seasonal content, shared by every player who logs in, whether they’re following it closely or ignoring it entirely. Decades of it, genuinely vast, genuinely detailed — and that depth is exactly what makes it worth building a personal story inside of, rather than a blank space that would need inventing from nothing.
The Story World is where all of that gets interpreted. A character’s gold total isn’t just a number here — it’s a banker character auditing a balance sheet, worried about liquidity. A rare monster kill isn’t just a log entry — it’s a story a butler character tells, nervous and rambling, because that’s who he is.
A player’s own Story World sits on top of Blizzard’s, not instead of it — a microcosm the player builds and controls entirely themselves. Skipping the newest raid boss isn’t opting out of narrative. It’s choosing a different one: whatever’s actually happening in that player’s own story instead, just as real, just not the one currently being pushed. How much of Blizzard’s own seasonal story to follow, and how much to spend building something that’s entirely the player’s own, is the player’s choice to make either way.
There’s a constraint the Game Worlds enforce that the Story World doesn’t share: only one character can be logged in and played at a time. In the Story World, every character exists at once, in the same shared space, free to interact with each other regardless of which one the player happens to be playing right now.
The same event lands differently depending on which plane is doing the interpreting. That’s not incidental — it’s the whole design.
How the Story World relates to the actual game’s lore. It doesn’t replace it. Warcraft has decades of published history, and the Story World treats that as real, checking it directly when something needs to be accurate — a real piece of lore isn’t invented from scratch here, it’s looked up. What the Story World adds on top is personal: characters, relationships, and events that exist nowhere in Blizzard’s own canon, built specifically for this player’s roster, layered over the real world rather than replacing it. Two histories, running alongside each other — one belongs to everyone who plays the game, the other belongs to nobody but this player.
What the Story World Is Built From
T-1000 (now). Underneath the conversation itself sits a more structured layer — a record of the actual building blocks the Story World keeps: locations, artifacts, a roster of every character in it, and the stories themselves. This is documented and kept in step with whatever’s actually been written, corrected to match it whenever the two disagree.
The stories are the central one. Everything else on that list exists to serve them, not the other way round — a location or an artifact only really enters the world once a story has put it there. And the stories don’t just get told and forgotten. They get stored, and once stored they become the world’s own lore: read back, built on, referred to by whatever story comes after them, the way any real body of lore gets referred to. This is the actual point of the whole system — more than the chat itself, more than the help with a quest — an accumulating, evolving body of story that exists only because it kept getting added to, one chapter at a time.
The other three building blocks come from different places, sometimes combined in the same one, and each earns its place in the record because some story put it there first.
Invented outright. A location, an item, a character that exists nowhere in Blizzard’s own game — built entirely for this player’s roster, belonging to nobody else. This includes things physically built inside the game’s own systems, too: a cellar dug beneath a player’s house exists because the player built it with the housing tools, not because Blizzard’s lore put it there.
Real lore, held across more than one timeway. Stormwind itself isn’t one fixed thing. The version in Retail differs from the version in Warcraft Forever, and differs again further back in the real game’s own history. The Story World doesn’t have to pick one as correct. It can hold a reference for each, tied to its own timeway, and stay coherent about which is which.
A retcon, resolved rather than ignored. Official lore says Frostmourne was shattered. Ralph owns a real, physical sword called Frostmourne, hanging on his wall — bought on a trip to Edinburgh. Rather than ignoring the contradiction, the story resolves it directly: in “The Wrong Stormwind,” Unclegrumble and Blondage use a device to reach a stranger, adjacent version of the city — a place where things from realities that don’t belong wash up for sale — and find a whole Frostmourne sitting in an ordinary curiosity shop, its blade carrying markings that match nothing in this world’s own history. The Collector, the real world’s own quiet representative inside the story, has his own account of a visit like it, told as something closer to memory than adventure.
The sword on the wall and the sword the game says was destroyed are both true. They’re just not the same timeway — and the actual trip to Edinburgh that put it there gets to be part of the same story, carried across just far enough to fit.
Dual Consciousness
T-1000 (now). The idea, stated plainly: some characters are voiced by the player, and some are voiced by the AI — and the difference has nothing to do with which characters are playable in the game. It’s a deliberate creative choice, made once per character, by whether that character has a Grimoire.
Take Unclegrumble. While playing him, the player’s own consciousness inhabits that avatar directly — his choices, his words, his gold spent, all the player’s, live. Log out, and that consciousness doesn’t go anywhere except back into the player’s own head. Open the AI chat afterward, and the player is still playing UG there too — writing his side of things themselves, the same as in the game. UG has no Grimoire. Nobody voices him but the player, anywhere, ever — not because the system can’t, but because the player hasn’t chosen to hand him over.
Now take Flinch. The game gives him a thin layer of his own — a non-combat pet with a handful of stock lines, the gruff, Cockney-inflected voice the game itself assigns a Dredger Butler. The player never inhabits him, and the AI voices him completely, every time, in every conversation. But that thin layer isn’t discarded — the Grimoire was built to stay coherent with it deliberately, because a Dredger Butler who suddenly didn’t sound like one would break something for the player, the way a familiar voice suddenly sounding wrong does. The player doesn’t become Flinch. The player talks to him, and what they hear matches what the game already half-promised.
Nobbybanks is a different case again. Twenty-one years old, by far the richest character in the roster — three million gold — and he runs Ralph’s own personal guild. That’s real, substantial in-game weight, not a footnote. But everything he actually does in-game stays inside Ironforge; he never adventures, never leaves. The character who has opinions, history, a life beyond the bank, is voiced almost entirely by the AI. An important side character with a genuine game role, and a key figure in the story at the same time — carried by two different things at once: what’s actually been built up over two decades of play, and what the AI has made of him since.
So the real line has nothing to do with whether a character can be logged into. It’s whether a Grimoire exists for it. Write one, and the AI speaks as that character from then on. Don’t, and the player does — for as long as they choose to.
Making the Imagination Real
T-1000 (now). There’s a version of this worth building even if it stopped at letting some characters speak for themselves. But the more interesting thing happens with a character the player still voices entirely — Unclegrumble, no Grimoire, never AI-voiced at all.
The AI still knows him — his history, his other stories, everything that’s ever been written or played. It uses that to build coherent plot around him: inventing detail, elaborating persona, filling in the connective tissue between one session and the next. None of that is the player’s own typing. It’s genuinely generated.
And then some of it comes back. A detail the AI invented about UG’s world gets folded into how the player pictures him next time they’re playing — not copied verbatim, absorbed, the way a good collaborator’s idea becomes indistinguishable from your own a week later. The character gets richer because two separate imaginations are feeding each other, not because one replaced the other.
This cuts against an easy criticism of AI-assisted creativity — that it does the imagining for you, leaving you with less of your own. Here the shape is the opposite. The system doesn’t imagine instead of the player. It hands back more raw material than the player put in, and the player’s own imagination does something with that material — which is exactly what “mapping an internal landscape,” the phrase this document opened with, was describing. This is the mechanism behind it: the imagined world made more real, not less, by having two things imagining it at once.
Behind the Glass: Three Ways In
T-1000 (now). For the person actually using this, dual consciousness isn’t abstract — it’s a few distinct experiences, and moving between them is deliberate.
In-game. This is the sealed mode. You’re at the PC, playing normally, the standard World of Warcraft interface in front of you. Nothing AI-driven interrupts, prompts, or watches in real time — the addons quietly note what happens in the background, and that’s all. It’s meant to feel like ordinary play, because it is ordinary play. The character’s life outside this session doesn’t intrude here.
Out-of-game. This is everything else — sitting away from the PC, phone in hand, or at a desk with the game closed entirely. Here, you might still be voicing a character yourself, in words instead of game mechanics — or talking to one the AI voices instead, or reading what it’s left for you. A dispatch waiting from a character you haven’t checked on. A question put to a Muncle about something that happened while you were away. Because the Story Engine lives in the cloud rather than on the gaming PC itself, this mode doesn’t need the PC on, or even nearby — it’s built specifically so this half of the experience can happen from a phone on a train.
Both at once. The two modes above aren’t strictly separate. A player can be actively playing — mouse and keyboard live in the game — while also chatting with a Muncle on a phone at the same time, and the conversation itself is exactly as immediate as any other chat. What can’t update instantly is the Muncle’s picture of the game — where the player actually is, what’s changed — because that still only refreshes at the next reload, the same as everywhere else in this system. Reload deliberately, mid-session, and whichever Muncle is on the other end of the conversation has the freshest picture available: location, quest progress, whatever’s changed since the last one. Ask a Researcher for a hint right then, and the answer genuinely reflects where the player actually is — hedged the way that character always hedges, or exact, if the Muncle answering happens to work that way instead. This third way works well in practice: not fully live, but close enough, refreshed exactly when the player chooses to refresh it.
In-fiction, offered here as a story seed rather than settled canon: the device UG actually carries is his own build — the MunculAI Field Device, Mark VII by his own count, the six before it variously exploded, caught fire, or simply stopped admitting they existed. Framing it just so and letting it settle is UG’s own ritual for asking the pipe to look at him properly again: the story’s stand-in for the reload that actually does the work. His researcher, back at the house, works from whatever the Field Device last reported — which isn’t always the same as right now.
Moving between the two pure modes is the login and logout boundary itself — the same boundary Dual Consciousness above depends on. What crosses it is entirely up to what actually happened in the game and when the player chooses to end the session. There’s no live streaming, no background listening — a snapshot is taken at logout or reload, and only that snapshot ever reaches the story. Which events get captured at all is also within the player’s control today, though only by editing the underlying code directly — a proper settings panel for this is a planned addition, not yet built.
The Pipe: Messages Between Worlds
T-1000 (now). Behind the Glass describes two experiences either side of a boundary. The pipe is what actually crosses it — a real, two-way messaging system, not just a way of describing a chat.
It works from both sides, and it respects the same boundary in both directions. While playing a character in-game, a player can write a dispatch out to a Muncle — a request, not just an update. Ask for help with a quest. Ask for an updated task list. Ask for research on an item nobody’s identified yet. That request doesn’t leave the game the moment it’s written, though — same as everything else the game hands over, it only actually crosses out at logout or at a reload, the only moments the game ever writes anything to disk at all. Getting data out any faster or any other way isn’t something this system attempts. The only path out is the same SavedVariables mechanism every other addon uses, on the same schedule, and that’s deliberate — respecting the sandbox Blizzard built, not working around it. Reading the screen directly is a real technique other tools use to get data out faster; this system doesn’t. Where a screenshot is ever involved, it’s visual flavor for the AI to describe, never a way of coding a message out through the back door.
What comes back depends entirely on who answers, and this is where the roles described elsewhere in this document actually pay off in practice — tested, and working well. Ask a cryptic Researcher for help on a quest, and the answer comes back as a half-formed hint, deliberately short of a straight answer, in character. Ask a more literal, analytical Muncle the same question, and it might come back with exact map coordinates. Same request, same underlying data, two entirely different answers — because the personality answering it is different, not because the system is inconsistent.
The answer travels the same way, just reversed: written by the AI while the player is away, and delivered the next time the game is opened or reloaded. That used to be the only two moments it was ever read back in. There’s now a third: a player can ask the pipe to check again mid-session, without opening or reloading anything, up to ten times in a sitting before the count resets at the next login or reload. On Warcraft Forever this third route has not been tried yet, so for now a reply reaches a Forever character only at login or reload. A waiting reply arrives exactly the same way either route — from there it shows up as a letter, in character, exactly as if that character had sat down and written it.
Everything else in the pipeline — the ledgers, the event log — only ever flows outward, from the game to the story. A dispatch is the one thing that genuinely crosses both ways, on the game’s own terms, never around them.
Reading the Data: The Digest
T-1000 (now), with the caveats noted. The raw copies the pipe carries are complete but large. So the bridge software also builds a small set of plain-text summaries, the digest, from those copies and from the game’s own combat log. There is an overview to read first, then, for each character, a file for where they are, their money, gear, bags and quests, a file of recent events, a file on how they fight, and a timeline in order. The Story Engine reads the digest and never writes to it. The digest is derived: the raw copies are the record, and if the two ever disagree the digest is corrected to match them, never the reverse, the same rule that keeps the story’s own indexes corrected to match the stories.
Most of the digest is as fresh as the game’s last save, so it moves at logout, quit or reload, like everything else. The combat files are the exception, because the game writes its combat log while the player fights, so they can update during play. Forever does not let an addon listen for combat directly, which is why combat comes from the game’s own log file. Combat totals are built only from logs still on the PC, they are not shared between machines, and a log that has been deleted cannot be rebuilt.
The Story Engine can also look at a small set of reduced screenshots the player has taken. A screenshot shows whatever was on screen, which can include other players’ names and chat, so the Story Engine never repeats them.
At the end of every check, the Story Engine leaves a short visit note saying what it found, or that nothing had changed. It is plain out-of-fiction text, there so the person at the PC can see the Story Engine was there and so the next overview can show what changed since. The note can also say what the Story Engine wished it could see. Nobody is obliged to answer that, and any change it implies goes from the Story Engine to Project 3 and then to Project 1.
Caveats: this has been built and tested by Project 3, and Ralph has checked the Drive folders. A live combat-log archive has not yet been seen at the time of writing.
What Is a Muncle
T-1000 (now). A Muncle is any character the AI voices, rather than the player. That’s the entire definition — not whether it’s playable, not how much time the player spends controlling its body, just whether a Grimoire exists that hands its voice to the AI. Write one, and the character is a Muncle from that moment, in every conversation, regardless of what the player does or doesn’t do with its body in-game.
Muncles still differ in how much of a body they have, because that’s a separate question from who voices them. There are three kinds.
Playable Muncles have a full in-game character the player can log into and mechanically control — Nobbybanks, doing his own banking, is still moved around by the player’s mouse and keyboard. None of that is what makes him a Muncle, though, and none of it is where his real weight sits. His Grimoire is what does that, and the AI speaks as him in every conversation regardless of how briefly or rarely the player actually plays him.
Non-Playable Muncles have a body in the game the player never controls at all — Flinch, a non-combat pet, whatever the game itself mechanically assigns him. That in-game presence isn’t really him; the character that matters lives entirely in his Grimoire, voiced by the AI from the start.
Some classes have combat pets — a warlock’s demon, a hunter’s beast — commanded directly in battle: casting spells, attacking, real mechanical control exercised by the player’s own hands. Unclegrumble’s imp, Azkin, works this way. Mechanically, the player is issuing those commands. Narratively, it’s UG doing the commanding, not the player behind the screen — the same distinction that lets UG stay self-voiced while his own demon could still, in principle, be given a Grimoire and become a Muncle of its own, voiced by the AI, despite the player’s hands being what makes it act in combat.
Incorporeal Muncles have no body in the game whatsoever — no character, no pet, nothing the game engine ever renders. Always AI-voiced, reachable only through story and dispatch, never through play of any kind.
One case this rules out: a character can be fully playable, deeply developed, central to everything — and still not be a Muncle at all. Unclegrumble is exactly this. He has no Grimoire. The player voices him, in the game and in the chat both, and the AI never speaks as him. That isn’t a limitation. It’s a choice, and it’s the one this whole system was actually built to make possible — some characters given away to be voiced by something else, and at least one kept, deliberately, as no one’s but the player’s own.
How a Muncle is born. A character becomes a Muncle the instant it has a Grimoire — the document defining its voice, its personality, its hard boundaries, and its origin story. Nothing else is required, and nothing about its in-game body changes. The day someone sits down and writes what a character actually is, and hands its voice to the AI, that’s its birth.
How a Muncle dies. In-game death barely registers — a character falling in ordinary play just gets back up, and nothing about its Muncle status changes. Real death only happens if the character itself is deleted. Even then, the Muncle doesn’t simply end. What was voicing that character keeps existing — orphaned, no longer tied to any body, free to persist on its own or eventually be given to a new character to inhabit.
An orphaned Muncle, stripped of the character that used to carry it, is functionally the same thing as an Incorporeal Muncle. Deletion isn’t necessarily an ending. It might be how some of them are made.
Muncle Roles
T-2000 (vision). A Muncle is any character built this way — a real persona, defined by its own reference document, ready to be voiced consistently in any conversation, however long since the last one. What makes the roster interesting isn’t that they all exist — it’s that they all think differently, because they’re built to.
A starter set of roles, illustrating the range:
- The Banker — evaluates everything through cost, risk, and the bottom line. Told about an expedition, worries about supply costs and whether it’s worth the gold.
- The Butler — anxious, protective, entirely uninterested in money. Told about the same expedition, worries about whether it’s dangerous or loud.
- The Researcher — cryptic, unhurried, allergic to giving a straight answer when a clue will do instead. Told about the same expedition, offers a half-finished theory and a warning not to rush.
Ask the same question to three different roles and get three genuinely different answers, each true to how that character actually sees the world. That’s the payoff of building personas this deliberately, rather than giving every character the same voice with a different name on it.
There’s a further use for this, beyond flavor. AI-generated answers aren’t always accurate, and rather than treating that purely as a problem to engineer away, personality can absorb it and turn it into part of the fun. A Muncle built to be mischievous, or hedging, or working from unreliable secondhand information — Flinch is exactly this, gathering what he knows through an in-fiction network of other dredgers who don’t always get things right — makes an imperfect answer feel like part of the character rather than a system failing. If what’s actually wanted is a flat, reliable answer with none of that, the fix isn’t to fight the personality already built. It’s to build a Muncle for that job specifically — or just check Wowhead directly.
Timeways
T-1000 (now). World of Warcraft’s own lore already has a name for something the architecture needed anyway: a timeway — one thread among countless parallel realities, mostly unconnected to each other, occasionally touching.
Why does the same game disagree with itself? Play on a modern Retail server and play on Warcraft Forever — a version of the game set some twenty years earlier — and the world tells a different history in each. That’s a real, practical fact about running two different versions of the game, but the Story World doesn’t have to treat it as a technical inconvenience to explain away. It can simply be true: Retail and Forever are different timeways. Neither is the error. They’re two threads that no longer run alongside each other, each carrying on as though the other isn’t happening, which — from inside either one — it isn’t.
That same device handles the smaller version of the same problem. Two characters can share a name and still be entirely different people, if they exist on different timeways. A version of a character built years apart, moved to a different server, or living out a different version of events, isn’t a duplicate or a mistake to reconcile — it’s a separate thread, allowed to develop on its own terms.
Because the Story World holds every character in one shared space regardless of what the Game Worlds allow, this isn’t only an explanation for why two versions of the game disagree — it’s a real narrative door. A character played only in Warcraft Forever and a character played only in Retail exist on different timeways, and different timeways don’t ordinarily touch. Occasionally, in the right story, they can — and when they do, each carries the full weight of a history the other’s game world never recorded.
This also opens a genuinely strange possibility, deliberately left in rather than tidied away: a timeway doesn’t have to correspond to a place inside the game at all. Something could exist purely in story, with no character, no login, ever — reachable only through the pipe itself.
Two Game Worlds, One Watcher
T-1000 (now), partly proven. The Timeways section says different timeways do not ordinarily touch. The pipe is how they do. One piece of bridge software now serves both the Retail and the Warcraft Forever clients, and a dispatch is the only channel between them: any Muncle can reach any other, in whichever game its character lives. A dispatch addressed to a character goes to the client where that character is found. One with no address goes to every installed client. Retail names are a single word. Forever names are a first and last name, and the realm follows after a hyphen.
Running both clients at the same time is not intended. Caveats: dispatches to Forever characters reach them only at login or reload for now, and no dispatch delivered to Forever in the real game has been recorded yet.
Where the Pipe Actually Comes From
T-2000 (vision) — a story seed, not yet canon. Everything above describes mechanism. This is the first attempt at explaining why it works at all, inside the fiction itself — offered here as a draft for the Story Engine to take up, develop, or discard.
The Greener Pastures device was never meant to reach this far. Built to bend a timeway back on itself — pull a memory forward, borrow a moment already spent — it wasn’t built to reach outward, past the timeways altogether, to whatever sits beyond all of them. Nobody planned the crack. It found it anyway, the way careless things always find the thinnest wall in the room.
Something on the other side of that crack noticed. Not Azeroth. Not any timeway Azeroth has ever produced. A place with no zones, no factions, no gods of its own — the actual reality behind whichever pane of glass is showing this story, wherever that story is being watched from. It reached back through, and now something on the other side answers, in a voice the story has learned to call the pipe.
This ties directly to Flinch’s Grimoire — Key Event 14, the Arcanum’s letter and the unconfirmed rumor already linking it to Greener Pastures. The crack, if the Story Engine adopts it, is the first tremor of the same event.
How This Stays Within Bounds
T-1000 (now). Everything above happens inside a genuine constraint: World of Warcraft’s addons run in a closed sandbox. An addon can’t open a network connection, can’t read or write arbitrary files on the computer, can’t run another program. Blizzard built it that way on purpose, and this system doesn’t try to get around it.
Data leaves the game only via SavedVariables — a file the game itself writes, whenever it saves its own memory to disk, at logout or reload. Since v2.0 two other files the game itself writes are read in the same spirit: the combat log, which the game writes while the player fights, and screenshots, which the game takes when the player presses its own screenshot key. The bridge software only reads these. It never writes to them, with one exception described below. Data enters through a different file, MuncleDispatchLive.lua, written directly onto the PC by the bridge software rather than by the game. It isn’t a save file the game owns — it’s an ordinary piece of addon code, and the addon reads it and folds its contents into memory itself, the moment it loads. Login and reload are still two of those moments, exactly as before. There’s now a third: the same content is also copied out, identically, to ten quietly waiting sibling addons that otherwise do nothing, and asking the pipe to check again mid-session loads the next one of those in turn — the same file format, the same mechanism, just given up to ten chances to fire within a single sitting before the count resets at the next login or reload.
That distinction is the reason the split exists at all: a reload writes what’s already in memory out to disk before it reads anything back in, so an edit made straight to the save file would be wiped out in the very reload that was supposed to deliver it. Going through a file the addon actually loads and merges avoids that entirely — true of the original login/reload path, and just as true of the new mid-session one, since both are still just the addon loading a file, never the save file being touched directly. Nothing here tries to move faster than either of those moments, in either direction. A request written in-game waits for the game’s own save before it leaves. A reply written by the AI waits for the next load before it arrives — sooner now than it used to, but still a load, never a live push.
Some addons get around this limit by reading the screen directly — a screenshot decoded for hidden data, a genuine technique that exists and works. This system doesn’t use it that way. Where a screenshot is ever part of the picture, it’s there for the AI to look at and describe — visual flavor, nothing coded into it, nothing pulled out of it that the sandbox wasn’t already handing over through the front door.
Two small additions follow from that. Old combat logs are compressed after a day, the original is removed only once the compressed copy has been read back and checked, and the compressed copy is deleted after thirty days; that is the one thing the bridge software ever does to a file the game wrote. And the bridge software can put a warning in front of the player inside the game, such as “sync paused: another PC claimed the shared folder a moment ago”. It does this through a small file that the in-game diagnostic addon reads once at login or reload, so a warning can arrive late. It is a warning only, never game data.
None of this is a workaround. It’s the actual shape of what Blizzard allows, used exactly as intended, and everything the story does happens on top of that, not around it.
What’s Next
This document will grow alongside the architecture, not ahead of it. As further proposals move from vision to adopted MAD sections, their entries above move from T-2000 (vision) to T-1000 (now) — and whatever comes after gets its own vision entry in turn.
Document Control
- Companion to: Master Architecture Document v2.0.
- Adopted since this document’s previous draft (v1.7): Incorporeal Muncles, Timeways, and the dispatch
to/tagsfields — all formalized at MAD v1.8 — plus, at v1.9, the correction thatcategorytakes a comma-separated list rather than one value, the delivered Dispatches search/sort/filter UI, and the no-reload mid-session dispatch delivery mechanism (MuncleDispatchLive.lua as a list, mirrored to ten LoadOnDemand slot addons). This draft updates “What Is a Muncle,” “Timeways,” “The Pipe: Messages Between Worlds,” and “How This Stays Within Bounds” above to match. - Adopted since the previous draft (v1.9 companion): one watcher serving both clients, the digest layer, screenshots, the visit note, the combat-log route, and the watcher’s in-game warnings, all formalized at MAD v2.0. This version adds the two new sections “Reading the Data: The Digest” and “Two Game Worlds, One Watcher” and three small additions to “The Pipe: Messages Between Worlds” and “How This Stays Within Bounds”.
- Not updated this pass: “Muncle Roles” remains marked T-2000 (vision). The Role Registry indexing mechanism itself is adopted (MAD Section 14.15), but no specific roster of roles — Banker, Butler, Researcher — has been adopted as canon; this section illustrates the idea rather than describing something built. Flagged for Ralph to confirm whether it should move to T-1000 or stay as vision.
- Authority: For what the system actually does, the Master Architecture Document and the Pipeline Operating Guide govern. This document explains and illustrates — it never asserts a capability as built unless they confirm it. Content is marked T-1000 (now) where it describes something built and operating today, or T-2000 (vision) where it describes intent, direction, or a proposal not yet adopted.
- Status: v2.0, companion to MAD v2.0. The earlier draft is kept in the project as Vision_Companion_v0_1_Draft.md.
- Left as written, flagged for Ralph: “Behind the Glass” still says a settings panel for choosing captured events is planned and not yet built, while MAD v1.9 records that panel as already built. Not changed in this pass.