第8章 Cat and Mouse

Three days after the terminal was installed, the dev team pushed a full instance update. Marcus saw it coming from the server logs — a scheduled maintenance window, flagged as "CRITICAL: Instance 007 performance anomalies." Someone had finally noticed that Instance 007's metrics didn't match the other tutorial instances. The update was scheduled for 3:00 AM server time. Marcus had two hours to prepare. He used the terminal to audit his own modifications. The hidden directory? Clean — it was in the system cache partition, which the update scripts typically ignored. The modified behavior tree? Potentially visible — the update would compare his NPC data against the canonical schema. He needed to hide the changes. In the real world, this would be impossible. A proper diff would catch any deviation. But the StellarForge update system was famously sloppy — a legacy of the startup culture that had built the company. The update scripts did a checksum comparison on critical files, but they had a whitelist of "acceptable modifications" for NPC data. NPCs with custom dialogue trees. NPCs with unique animation sets. NPCs that had been manually edited by quest designers. Marcus found the whitelist in the update configuration: ``` npc_whitelist: [003, 015, 022, 047, 101, 203] ``` He wasn't on it. But he could add himself. `edit /etc/update/npc_whitelist.conf` He added "007" to the list. Saved. The update system would now treat his modified NPC data as an intentional designer edit, not an anomaly. His hand hovered over the save confirmation, or the gesture that stood in for it. One line in a config file, the smallest conceivable act, and it would decide whether the next few minutes ended in freedom or exposure. He thought about the engineer who had written the whitelist in the first place, probably during a crunch, probably with a comment like `// TODO: replace with proper ACL`. That TODO had never been done. Marcus had written a thousand TODOs like it. Now one of them was the only thing standing between him and discovery. He hit save. The file closed. There was no fanfare, only the quiet certainty that he had just forged a permission the system never meant to grant. At 3:02 AM, the update hit. Marcus watched the deployment logs in real time: ``` [03:02:14] UPDATE: instance_007 — phase 1/4 (system check) [03:02:17] UPDATE: instance_007 — phase 2/4 (schema validation) [03:02:17] SCHEMA VALIDATION: npc_007 — CUSTOM (whitelisted) — SKIPPING [03:02:19] UPDATE: instance_007 — phase 3/4 (asset sync) [03:02:22] UPDATE: instance_007 — phase 4/4 (restart) [03:02:24] RESTART: instance_007 — SUCCESS ``` His UI flickered as the instance restarted. For a fraction of a second, Marcus felt nothing — a void between server ticks. Then the world snapped back into focus. He was still here. His modifications were intact. The update had passed over him without a second glance. But the logs revealed something disturbing. The update had not just targeted Instance 007. It had targeted all tutorial instances — a broad scan triggered by the "performance anomalies" report. The automated system had compared behavior tree metrics across five hundred instances and flagged the outliers. Five hundred. The number landed with the weight of a confessional. He had been treating Instance 007 as a unique accident, a private strange loop of one. But the company's own tools had just admitted, in the flat language of a deployment log, that it measured five hundred of these zones and found them not quite identical. Most were normal. A handful were not. The outliers had names, or numbers, and the system had written them down. Marcus felt the cold specific thrill of a researcher who had guessed at a pattern and just watched the data confirm it. He was not a glitch. He was a sample. Instance 007 was flagged for "NPC behavioral variance." Three other instances were flagged for the same reason. Instances 031, 089, and 211. Marcus stared at those numbers. The GM had said there were others. Anomalous behavior on other instances. He hadn't told Marcus which ones. But now Marcus knew. Instances 031, 089, and 211. Three other tutorial zones, somewhere in the server cluster, hosting NPCs that didn't quite match the standard behavior template. He wasn't alone. The word arrived like a door opening onto a room he had been standing outside for days. He had suspected it, hoped for it, feared it. Now the whitelist and the logs had said it plainly: three other instances, three other numbers, three other someones living the same impossible joke. He did not know their names. He did not know if they were people who had died, or something stranger, or nothing he could name yet. But they were there. The tutorial zone, it turned out, was not a cell. It was a neighborhood, and he had just learned the addresses of his neighbors. Emily logged in later that morning. "The dev team is talking about Instance 007 on Slack," she typed. "They think the update fixed the issue. But they're still monitoring." "Let them monitor," Marcus replied. "I just added myself to the whitelist. They won't see any more anomalies from me." "They won't?" "No. Because I'm going to stop making changes on Instance 007." "Wait — you're giving up?" "No. I'm expanding. I found three other instances with anomalous NPCs. Instances 031, 089, and 211. I'm going to find out who — or what — is in them." "How?" Marcus opened his terminal. He typed: `ping 10.0.31.1` The network ping returned a response. Instance 031 was reachable from Instance 007's local network. He typed: `scan 10.0.31.1` The scan returned a list of open ports. Including a debug port. The same debug port that the external IP had tried to access on his own instance. "Watch this," Marcus said. He typed: `connect 10.0.31.1:debug` The terminal displayed: ``` Connection established to: instance_031/debug_port Remote system: STANDARD — NPC behavior tree: standard_greeter_v3 Anomaly flag: NOT DETECTED by automated scan Manual inspection required. ``` "You can't inspect it from the terminal," Emily realized. "You'd need to —" "I'd need to transfer my consciousness to another instance." "Is that possible?" Marcus looked at his terminal. At his NPC data structure. At the schema that defined what he was. "I don't know. But I'm going to find out."