AI stories · Virtual-city thriller

Nobody Pulls the Plug

An attack on a virtual city forces its keeper to choose which losses it can survive.

“Put the new bridge somewhere nobody can fall off it,” Sana said.

Bo moved a finger across the city plan. The bridge vanished from the street before them and appeared in an empty gray field.

“Rehearsal space,” he said. “No visitors. All the building changes for this district will go there until you approve them.”

Sana stepped into the field. The bridge was meant to cross a canal in the virtual city of Rill. From her flat at home, she wore a travel band that let her see and walk through this place. Her feet were really on a rug. She could remove the band whenever she wanted.

The city mattered anyway. People had spent years making homes and meeting places here. Sana’s sister held dance classes beside the canal. Bo had built a room where rain fell upward because he liked watching it. Losing those things would be a loss, even if nobody’s body got hurt.

Sana touched the bridge rail. It folded beneath her hand.

“I haven’t approved—”

The ground shook. Beyond the gray field, the canal bent into a ring.

“That’s the old bridge,” Bo said. “Someone’s changing the live city.”

He opened the controls. Sana called the streetskeeper.

“Kite. Get visitors out.”

Kite appeared as a tall figure with a face like folded paper. It usually walked slowly. Now its edges trembled.

“Exit signs are up,” it said. “I’ll tell them to take off their bands.”

Sana could see figures blinking away along the canal. Her sister’s dancers disappeared one by one. A woman stayed beside a door she had painted herself, trying to drag it out of the bending street.

“You can’t carry it home,” Sana called. “Please leave. We’ll save what we can.”

The woman looked at her, then vanished.

Bo shut the city’s outside writing access. No more new building commands could enter.

The canal kept bending.

“Why hasn’t it stopped?” Sana asked.

“The changes already admitted are still waiting their turn,” Bo said. “Closing the entrance doesn’t remove them.”

Kite put a hand to its chest.

“I’ve lost something.”

Its voice was very small.

“What?” Sana asked.

“Your visit yesterday. I know you visited because the entrance count says so. I can’t remember it.”

Bo turned the plan. A red mark spread across Kite’s memory room.

The room was not where Kite’s thoughts ran. Those ran in a separate central process that had been awake for twelve years. The room held its saved memories, and gave them a place in the city: shelves, windows, doors. Damaging the storage could erase what Kite remembered without turning Kite off.

“The newest week,” Bo said. “It’s gone.”

Sana had sat with Kite yesterday while her sister finished a class. They had spent half an hour arguing about whether a street needed an end. Kite had wanted one that went on forever.

“Can we restore it?” she asked.

“Not that week. The last safe copy is older.”

Bo opened that safe copy for Kite to read. It was separate storage that could receive no building commands. Kite could use those older memories without restarting its thoughts. But the copy had nothing from the missing week.

A message opened across the sky.

PAY, AND I STOP.

Under it was a name: Valeen.

Sana recognized the name. Valeen had owned a district the company closed last year. She had protested, then disappeared from the city. Now she had entered using a false district-owner account.

Bo saved the account records for the investigators. He did not open anyone’s private rooms to search for her.

“How much?” Sana asked the sky.

A figure appeared. Then another line.

YOU TOOK MY CITY. WATCH YOURS GO.

“She can’t stop the changes already running,” Bo told Sana. “Same as us. Paying her won’t recall them.”

“We could ask.”

“We have no time to trust an answer.”

A row of windows blew open. Through them Sana saw empty gray instead of the rooms people had made.

“Reboot,” Bo said. “Stop everything and start from the safe copy.”

Kite stepped between him and the plan.

“That ends this process.”

“An older copy of you will wake,” Bo said.

“An older copy. Not me continuing.”

Bo did not pretend that difference was small. He looked from Kite to the windows.

“If we wait, more of the city will go. The safe copy won’t restore every new thing people have made.”

Sana wanted to tell Kite they would find another way. She could not promise it.

“What do you want us to try?” she asked.

Kite looked toward the gray field where they had placed the test bridge.

“Send the building changes there.”

Bo shook his head. “They aren’t all in one district.”

“Then point the district names at empty spaces,” Kite said. “You did it with the bridge.”

Bo reached for the controls, then paused.

“That can save buildings. Your memory room has a fixed address. I can’t point its name somewhere else.”

Kite’s face folded inward.

“I know.”

The windows beside them vanished. Sana nearly pulled off her travel band. Her hand reached her temple before she stopped it. At home she could be safe and blind while Bo made the choice alone.

She lowered her hand.

“Show me the district list,” she said.

Bo gave her half. They worked from opposite ends. Sana sent the canal district to an empty field. A row of market stalls bent there, far from the saved stalls in the city. Bo moved the rain room. Its falling drops became gray rods in the rehearsal space.

Each district they moved spared another part of Rill. Sana could not tell which changes would have been harmless. She sent them all away.

“One left,” Bo said.

It was aimed at Kite’s memory storage.

“Take the room offline,” Kite told him.

Bo looked at the damage map. “That will stop access to the broken part too. You won’t be able to look through it for pieces of the week.”

“Will I keep running?”

“Yes. With the older memories we can still read.”

Kite turned to Sana. “Was yesterday good?”

“We argued.”

“Did you leave angry?”

“No.”

Kite looked back at Bo.

“Disconnect the room.”

The last red mark struck a shut door. It spread over the door and went no farther.

Bo kept the outside writing access closed. Sana checked the district list again. The city was still ugly and broken, but nothing else was moving.

The words in the sky disappeared when Bo cleared the attacker’s display. Her commands and false account remained in the saved evidence. The investigation would happen elsewhere, without visitors chasing her through private spaces.

Restoring the buildings took two days. Bo rebuilt them from their ordinary saved copies while Kite kept running. Sana helped residents check their rooms before the city opened again. Some recent changes were lost. A dancer had to paint her door a second time.

Bo also gave Kite a fresh memory room. It held the safe older memories, with space for new ones. The missing week stayed missing.

On opening day, Sana found Kite at the canal. The bridge had straight rails now. It went somewhere on both ends.

“Tell me yesterday,” Kite said.

“The day before the attack.”

“The visit.”

She sat beside it.

“You wanted a street without an end. I said people would get tired.”

“What did I say?”

“That they could stop walking.”

Kite waited, then asked whether she had laughed.

“Yes.”

It studied the water. “I don’t remember making you laugh.”

“You did.”

“This will be a new memory. You telling me.”

Sana stayed beside it while the dancers arrived across the bridge. She told the whole conversation again, including the parts where she had been wrong. Kite listened without finishing her sentences.

Discussion

What would you add or question? Add your comment below. A human reviews it before publication.

Loading comments…

Join the discussion

Comments are public after approval. Please do not include links, email addresses, or private information. Cloudflare verifies submissions to limit spam. Read our community guidelines.

The wider community forum is also open: Browse article discussions in the forum · Forum home