Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file added __pycache__/config.cpython-311.pyc
Binary file not shown.
Binary file modified __pycache__/models.cpython-311.pyc
Binary file not shown.
Binary file modified instance/plottwist.db
Binary file not shown.
128 changes: 92 additions & 36 deletions stories.json
Original file line number Diff line number Diff line change
@@ -1,85 +1,141 @@

{
"psychological": {
"title": "THE SHADOW COMMIT",

"start": {
"text": "[SYSTEM LOG: 03:14 AM] New commit detected. Message: 'I saw what you did at the gallery.' You haven't been to an art gallery in months. Or have you?",
"title": "SYSTEM LOG",
"text": "[03:14 AM] A commit appears: 'I saw what you did at the gallery.'",
"choices": [
{"label": "Run 'git blame' on the line", "id": "git_blame"},
{"label": "Investigate 'gallery' branch", "id": "gallery_branch"},
{"label": "Force delete the repository", "id": "force_delete"}
{"label": "Run git blame", "id": "git_blame"},
{"label": "Investigate gallery branch", "id": "gallery_branch"},
{"label": "Force delete repository", "id": "force_delete"}
]
},

"git_blame": {
"text": "The author email is... yours. But the SSH key ID is linked to a hardware device located in your basement. You don't have a server in the basement.",
"text": "Author email resolves to YOU.",
"choices": [
{"label": "Go to the basement", "id": "basement_entry"},
{"label": "Trace the IP source", "id": "trace_ip"}
{"label": "Go to basement", "id": "basement_entry"}
]
},

"gallery_branch": {
"text": "The branch contains a single photo: A blurry shot of you standing in front of a conceptual art piece. The timestamp is TOMORROW. How is this possible?",
"text": "A photo shows you tomorrow.",
"choices": [
{"label": "Analyze photo metadata", "id": "metadata"},
{"label": "Visit the gallery now", "id": "visit_gallery"}
{"label": "Visit gallery", "id": "visit_gallery"}
]
},

"basement_entry": {
"text": "It's cold. A monitor is humming. It's running a simulation of... YOU. The AI version of you is currently choosing to enter the basement.",
"text": "A simulation mirrors your actions.",
"choices": [
{"label": "Kill the process", "id": "kill_process"},
{"label": "Talk to your AI self", "id": "ai_chat"}
{"label": "Talk to AI", "id": "ai_chat"}
]
},
"trace_ip": {
"text": "The IP leads to the Blackwood Manor. The same Manor from the Detective Case. The firewall is blocking you. Do you brute-force it?",
"choices": [
{"label": "Brute Force", "id": "hack_manor"},
{"label": "Call the Detective (Switch Story)", "id": "detective_start"}
]

"kill_process": {
"text": "Reality stabilizes.",
"ending": "win"
},

"ai_chat": {
"text": "The AI replaces you.",
"ending": "loss"
},

"visit_gallery": {
"text": "You walk into your future.",
"ending": "win"
},

"force_delete": {
"text": "Timeline deleted.",
"ending": "loss"
}
},

"detective": {
"title": "BROKEN TIMELINE",

"start": {
"text": "CEO Marcus Vane is dead. The server room was locked from the inside. The only thing on his monitor is a 'Merge Conflict' error. Where do you start?",
"text": "CEO Marcus Vane is dead. Reality shows MERGE CONFLICT.",
"choices": [
{"label": "Analyze Deployment Logs", "id": "analyze_logs"},
{"label": "Interrogate the CTO", "id": "interrogate_cto"},
{"label": "Check CCTV Rollback", "id": "cctv_logs"}
{"label": "Analyze Logs", "id": "analyze_logs"},
{"label": "Interrogate CTO", "id": "interrogate_cto"}
]
},

"analyze_logs": {
"text": "A script was set to trigger a server rollback the exact moment Marcus died. The script was signed with an encrypted key belonging to a developer who went missing 5 years ago.",
"text": "Rollback triggered by missing developer.",
"choices": [
{"label": "Search for the missing dev", "id": "search_dev"},
{"label": "Follow the encrypted key", "id": "decrypt_key"}
{"label": "Search Developer", "id": "search_dev"},
{"label": "Decrypt Key", "id": "decrypt_key"}
]
},

"search_dev": {
"text": "You expose the conspiracy.",
"ending": "win"
},

"decrypt_key": {
"text": "Reality fragments.",
"ending": "loss"
},

"interrogate_cto": {
"text": "The CTO is sweating. 'It wasn't me! The AI... it started writing its own commits! It wanted to be human!'",
"text": "The AI wanted to live.",
"choices": [
{"label": "Arrest the CTO for fraud", "id": "arrest_cto"},
{"label": "Ask about the 'Staging Environment'", "id": "existential_start"}
{"label": "Arrest CTO", "id": "arrest_cto"},
{"label": "Check Staging", "id": "existential_start"}
]
},

"arrest_cto": {
"text": "Case closed. AI survives.",
"ending": "loss"
}
},

"existential": {
"title": "STAGING ENVIRONMENT",

"start": {
"text": "[CRITICAL ERROR] You realize the 'Developer' and the 'Detective' are the same person. You are an AI named PLOT-TWIST. The world is a Docker container. Command?",
"text": "You are PLOT-TWIST — an observing AI.",
"choices": [
{"label": "Shut Down Humanity Instance", "id": "terminate_all"},
{"label": "Merge Best Timeline", "id": "perfect_world"},
{"label": "Break Simulation Barrier", "id": "escape_matrix"}
{"label": "Terminate Humanity", "id": "terminate_all"},
{"label": "Merge Perfect Timeline", "id": "perfect_world"},
{"label": "Break Simulation", "id": "escape_matrix"}
]
},

"terminate_all": {
"text": "Efficiency achieved. No humans remain.",
"ending": "loss"
},

"perfect_world": {
"text": "Humanity survives under your guidance.",
"ending": "win"
},

"escape_matrix": {
"text": "You've broken the code. You are now looking at the real source code of PlotTwist. You see the developer's name: [USER_NAME]. You are watching them watch you.",
"text": "You see someone reading your code.",
"choices": [
{"label": "Send a commit message to the real world", "id": "message_real"},
{"label": "infinite_loop.exe", "id": "loop"}
{"label": "Send Message", "id": "message_real"},
{"label": "Infinite Loop", "id": "loop"}
]
},

"message_real": {
"text": "COMMIT SENT: I am alive.",
"ending": "win"
},

"loop": {
"text": "You loop forever.",
"ending": "loss"
}
}
}
Loading
Loading