Files
BreakEscape/scenarios/m01_first_contact

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 mappings
  • ink/*.ink - 9 Ink dialogue scripts (source)
  • ink/*.json - 9 compiled Ink scripts (ready for game)

Ink Scripts (All Compiled Successfully)

  1. m01_opening_briefing - Mission start cutscene
  2. m01_npc_sarah - Receptionist NPC
  3. m01_npc_kevin - IT Manager (social engineering target)
  4. m01_npc_maya - Data Analyst (whistleblower)
  5. m01_npc_derek - CEO (antagonist confrontation)
  6. m01_terminal_dropsite - VM flag submission terminal
  7. m01_terminal_cyberchef - Base64 decoder workstation
  8. m01_phone_agent0x99 - Handler (phone support)
  9. 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:

  1. Room Dimensions - Need exact GU (Grid Unit) specifications
  2. Object Coordinates - Need precise x,y positions within rooms
  3. NPC Sprite Assets - Need to specify sprite sheet names
  4. CyberChef UI - Need to decide on implementation approach (custom vs embedded)

Minor Issues

  1. Derek's Dialogue - Could be expanded for more philosophical depth (Stage 8 feedback)
  2. 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:

  1. Player gets password hints from Kevin (in-game)
  2. Player launches VM from server room terminal
  3. Player completes challenges in VM (SSH brute force, Linux navigation, sudo escalation)
  4. Player returns to game and submits flags at drop-site terminal
  5. Flags unlock intelligence and advance the story

Documentation References

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

  1. Load the scenario: Game should auto-discover scenarios/m01_first_contact/
  2. Ink scripts are compiled: .json files ready in ink/ directory
  3. ERB processing: Run ERB processor on scenario.json.erb to generate final JSON
  4. 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.