- Updated the story premise to introduce "Operation Shatter," detailing the coordinated mass panic attack targeting vulnerable populations. - Expanded the room layout to include additional rooms and NPC interactions, enhancing player exploration and engagement. - Added critical LORE fragments revealing casualty projections and targeting demographics, emphasizing the stakes of the mission. - Revised dialogue and choices to reflect player actions and moral implications, ensuring a more impactful closing debrief. - Improved scenario structure and flow, aligning with best practices for narrative clarity and player agency.
Mission 1: First Contact
Status: ✅ Ready for In-Game Testing (All Critical Issues Resolved) Last Updated: 2025-12-01
⚠️ IMPORTANT: See FIXES_APPLIED.md for recent critical fixes
What's Complete
✅ Core Files
scenario.json.erb- Game world structure (corrected format)mission.json- Mission metadata and CyBOK mappingsink/*.ink- 9 Ink dialogue scripts (source)ink/*.json- 9 compiled Ink scripts (ready for game)
✅ Ink Scripts (All Compiled Successfully)
m01_opening_briefing- Mission start cutscenem01_npc_sarah- Receptionist NPCm01_npc_kevin- IT Manager (social engineering target)m01_npc_maya- Data Analyst (whistleblower)m01_npc_derek- CEO (antagonist confrontation)m01_terminal_dropsite- VM flag submission terminalm01_terminal_cyberchef- Base64 decoder workstationm01_phone_agent0x99- Handler (phone support)m01_closing_debrief- Mission ending
✅ Rooms (7 Total)
- Reception Area (starting room)
- Main Office Area (hub)
- Derek's Office (locked - keycard)
- Server Room (locked - keycard)
- Conference Room
- Break Room
- Storage Closet (locked - lockpick tutorial)
✅ Global Variables
All cross-NPC state variables properly configured in globalVariables section.
✅ Cutscenes and Triggers (Recently Fixed)
- Opening Briefing: Auto-starts via timedConversation (delay: 0, background: HQ)
- Closing Debrief: Auto-triggers via phone NPC event mapping when Derek confrontation ends
- Agent 0x99: Phone NPC with event mappings for tutorial guidance (lockpick, rooms)
- Mission Completion: All 3 Derek ending paths properly set
derek_confronted = true
See FIXES_APPLIED.md for implementation details
Optional Enhancements
Objectives System (Not Yet Implemented)
The scenario currently works without the objectives UI system, but you can optionally add structured objectives for better player guidance.
To add objectives: Follow the format in scenarios/test_objectives/scenario.json.erb
Example structure:
"objectives": [
{
"aimId": "establish_presence",
"title": "Establish Presence",
"description": "Get your visitor badge and access to the office",
"status": "active",
"order": 0,
"tasks": [
{
"taskId": "talk_to_sarah",
"title": "Talk to receptionist Sarah",
"type": "npc_conversation",
"status": "active"
}
]
}
]
The Ink scripts already use task completion tags (#complete_task:task_id), so adding the objectives structure will make them appear in the UI.
Reference: See planning_notes/overall_story_plan/mission_initializations/m01_first_contact/04_player_objectives.md for the full objectives hierarchy that was originally planned.
Known Issues / TODOs
From Original Planning
These were documented during Stage 8 validation but deferred:
- Room Dimensions - Need exact GU (Grid Unit) specifications
- Object Coordinates - Need precise x,y positions within rooms
- NPC Sprite Assets - Need to specify sprite sheet names
- CyberChef UI - Need to decide on implementation approach (custom vs embedded)
Minor Issues
- Derek's Dialogue - Could be expanded for more philosophical depth (Stage 8 feedback)
- Variable Documentation - Could create a master reference of all Ink variables
Testing Checklist
Before marking as production-ready:
- Test in game - scenario loads without errors
- All 9 Ink scripts load and display correctly
- Room connections work (can navigate between all rooms)
- Locks function (storage closet pickable, offices require keycard)
- Global variables sync between NPCs
- Phone NPC (Agent 0x99) event triggers work
- ERB Base64 encoding generates correctly
- All items can be picked up
- Containers can be searched
- Derek confrontation flows correctly
- Closing debrief reflects player choices
Integration with VM Scenario
SecGen Scenario: intro_to_linux_security_lab
The scenario integrates with a VM for technical challenges:
- Player gets password hints from Kevin (in-game)
- Player launches VM from server room terminal
- Player completes challenges in VM (SSH brute force, Linux navigation, sudo escalation)
- Player returns to game and submits flags at drop-site terminal
- Flags unlock intelligence and advance the story
Documentation References
- Format Guide: story_design/SCENARIO_JSON_FORMAT_GUIDE.md
- Global Variables: docs/GLOBAL_VARIABLES.md
- Objectives System: docs/OBJECTIVES_AND_TASKS_GUIDE.md
- Ink Best Practices: docs/INK_BEST_PRACTICES.md
Planning Documents
Full mission planning available in:
planning_notes/overall_story_plan/mission_initializations/m01_first_contact/
- Stage 0: Scenario Initialization
- Stage 1: Character Development
- Stage 2: World Building
- Stage 3: Moral Choices
- Stage 4: Player Objectives (full hierarchy)
- Stage 5: Room Layout
- Stage 6: LORE Fragments
- Stage 7: Ink Scripts
- Stage 8: Validation Report
- Stage 9: Assembly Notes
Quick Start for Developers
- Load the scenario: Game should auto-discover
scenarios/m01_first_contact/ - Ink scripts are compiled:
.jsonfiles ready inink/directory - ERB processing: Run ERB processor on
scenario.json.erbto generate final JSON - Test basic flow: Start → Reception → Talk to Sarah → Get badge → Explore office
Contact
For questions about this mission, refer to planning documents or the validation report.