Skip to content

Visual Quest Editor

Create entire quest systems visually! Design task trees, configure prerequisites, set up task sources, and manage complex quest chains with an intuitive drag-and-drop interface.

🚀 Launch Quest Editor

Opens in a new tab with full-screen canvas


  • Node-based interface - Drag and drop tasks onto the canvas
  • Visual connections - Draw prerequisite relationships between tasks
  • Quest trees - See your entire quest chain at a glance
  • Auto-layout - Automatically organize your quest flow
  • Task nodes - Full task configuration (all 28 events, rewards, etc.)
  • Task sources - Auto-assignment rules with zones, flags, and prerequisites
  • Flag nodes - Visual flag management for quest progression
  • Conditional branches - Create branching quest paths
  • Multi-file export - Generate all task and source JSONs at once
  • Organized structure - Files organized by quest chain
  • Validation - Check for circular dependencies and missing prerequisites
  • Import existing - Load and edit existing quest systems

Add Task Nodes:

  • Click “Add Task” to create a new task node
  • Configure the task details in the properties panel
  • Position nodes on the canvas

Connect Tasks:

  • Drag from a task’s output handle to another task’s input handle
  • Connections represent prerequisites (source → depends on → target)
  • Multiple prerequisites are supported

Add Task Sources:

  • Click “Add Source” for auto-assignment rules
  • Configure zone-based, flag-based, or prerequisite-based assignment
  • Link sources to their associated tasks

Task Properties:

  • Basic info (name, description, icon)
  • Subtasks with all 28 event types
  • Rewards (commands, currency, scripts, timelines)
  • Repeat settings and time limits

Source Properties:

  • Source type (zone, flag, command, prerequisite)
  • Assignment conditions
  • Priority and ordering
  • Target tasks

Flag Properties:

  • Flag name and description
  • Set/unset conditions
  • Visual indicator of flag usage

Single Export:

  • Click “Export All” to download a ZIP file
  • Contains all task JSONs in tasks/ folder
  • Contains all source JSONs in sources/ folder
  • Includes a README with installation instructions

Individual Export:

  • Right-click any node for individual export
  • Copy JSON to clipboard
  • Quick testing of individual tasks

[Task A] → [Task B] → [Task C] → [Task D]

Simple progression where each task requires the previous one.

┌→ [Path A1] → [Path A2]
[Start] →│
└→ [Path B1] → [Path B2]

Player chooses different quest paths with different outcomes.

[Task A] ┐
[Task B] ├→ [Final Task]
[Task C] ┘

Multiple tasks must be completed before accessing final task.

[Source: Enter Zone A] → [Task 1] → [Task 2]
[Source: Enter Zone B] → [Task 3] → [Task 4]

Tasks unlock as players explore different zones.


Zone-based Assignment:

  • Auto-assign tasks when entering specific zones
  • Perfect for region-locked content
  • Example: Beach quests appear when entering beach zone

Flag-based Assignment:

  • Assign tasks based on player flags
  • Create dynamic quest availability
  • Example: Unlock gym challenges after defeating trainers

Prerequisite-based Assignment:

  • Chain tasks automatically
  • No manual /journey task start needed
  • Example: Next quest starts on previous completion

Visual Flag Tracking:

  • See which tasks set/check flags
  • Prevent flag conflicts
  • Debug complex flag dependencies

Auto-flag Generation:

  • Automatically generate flags for quest chains
  • Consistent naming conventions
  • Easy prerequisite setup

Real-time Checks:

  • ✅ Circular dependency detection
  • ✅ Missing prerequisite warnings
  • ✅ Orphaned node detection
  • ✅ Invalid configuration highlighting

  1. Add the first task node - “Choose Your Starter”

    • Event: STARTER_CHOSEN
    • Reward: 500 Pokédollars
  2. Add task source - Auto-assign on first join

    • Type: Flag-based
    • Condition: !q.player.has_flag('starter_chosen')
  3. Add second task - “Catch Your First Pokémon”

    • Prerequisite: Previous task
    • Event: POKEMON_CAUGHT
    • Connect nodes with arrow
  4. Add third task - “Win Your First Battle”

    • Prerequisite: Previous task
    • Event: BATTLE_VICTORY
  5. Export all - Download complete quest chain

  1. Add zone source node - “Beach Zone Entry”

    • Zone UUID: [your beach zone]
    • Assigns beach quests on entry
  2. Add multiple beach tasks

    • Catch water Pokémon
    • Battle swimmers
    • Find hidden items
  3. Connect source to all tasks

    • Single source → multiple tasks
    • All assigned together
  4. Export with structure - Organized beach quest folder


  • Space + Drag - Pan canvas
  • Ctrl + Mouse Wheel - Zoom in/out
  • Delete - Remove selected node
  • Ctrl + D - Duplicate selected node
  • Ctrl + Z - Undo last action
  • Ctrl + Y - Redo
  • Ctrl + S - Export all
  • Ctrl + A - Select all nodes
  • F - Frame all nodes (fit to view)

  • Name tasks clearly - Include quest chain name in task ID
  • Use colors - Color-code nodes by quest type or region
  • Group related tasks - Keep quest chains visually together
  • Add notes - Use comment nodes for documentation
  • Split large systems - Keep quest chains under 50 tasks per canvas
  • Use subgraphs - Link to other canvases for mega-systems
  • Export frequently - Save your work often
  • Test incrementally - Export and test small sections first
  • Provide choice - Offer multiple quest paths when possible
  • Balance rewards - Use consistent reward scaling
  • Clear objectives - Write descriptive task names and descriptions

  • Check that you’re dragging from output (right) to input (left)
  • Ensure no circular dependencies
  • Tasks can only depend on tasks, sources can only point to tasks
  • Validate all nodes before exporting
  • Check for red warning indicators
  • Ensure all tasks have valid events
  • Break into multiple smaller chains
  • Use flags to link between chains
  • Document dependencies in comment nodes

Future enhancements planned:

  • Timeline node integration
  • Levelable progression nodes
  • NPC dialogue tree integration
  • Quest item management
  • Visual scripting for rewards
  • Collaborative editing
  • Template library