Setup VSCode for F5 Python debugging in UE5 editor. Use when users need to (1) configure VSCode for UE5 Python debugging, (2) setup debugpy remote debugging workflow, (3) enable breakpoint debugging in UE5 Python scripts, or (4) create VSCode launch/task configurations for UE5.
Configures VSCode for F5 debugging of Python scripts in Unreal Engine 5 via debugpy.
/plugin marketplace add chengdagong/ue5-dev-tools/plugin install ue5-dev-tools@ue5-local-marketThis skill inherits all available tools. When active, it can use any tool Claude has access to.
assets/vscode-launch-template.jsonassets/vscode-tasks-template.jsonscripts/setup-vscode.pyscripts/start_debug_server.pyConfigure VSCode for F5 debugging of Python scripts running in Unreal Engine 5 editor via debugpy remote debugging.
Required Skill: ue5-python-executor
This skill depends on ue5-python-executor for:
Ensure ue5-python-executor skill is installed before using this skill.
Configure VSCode with debugging launch and task configurations:
# Auto-detects project from CLAUDE_PROJECT_DIR
python scripts/setup-vscode.py
# Or specify project path explicitly
python scripts/setup-vscode.py --project /path/to/ue5/project
# Force overwrite existing configurations
python scripts/setup-vscode.py --force
This automatically creates:
.vscode/launch.json - Debug configurations for attaching to UE5.vscode/tasks.json - Tasks for starting debugpy server and executing scriptsNote: Requires debugpy installed in UE5's Python environment.
For new UE5 projects that need VSCode debugging:
Ensure ue5-python-executor is configured:
# From ue5-python-executor skill
python ../ue5-python-executor/scripts/check-config.py --auto-fix
Setup VSCode configurations:
python scripts/setup-vscode.py
Install debugpy in UE5's Python:
python ../ue5-python-executor/scripts/remote-execute.py \
--code "import subprocess; subprocess.run(['pip', 'install', 'debugpy'])"
Test debugging:
For interactive Python development with breakpoints:
For debugging already-running debugpy servers:
Manually start debugpy server in UE5:
python ../ue5-python-executor/scripts/remote-execute.py \
--file scripts/start_debug_server.py
In VSCode, select "UE5 Python: Attach Only" configuration
Press F5 - debugger attaches without executing a script
Generates VSCode debugging configurations for UE5 Python.
Key features:
CLAUDE_PROJECT_DIRCLAUDE_PLUGIN_ROOTUsage examples:
# Setup current project (auto-detected)
python scripts/setup-vscode.py
# Setup specific project
python scripts/setup-vscode.py --project /path/to/ue5/project
# Force overwrite existing configurations
python scripts/setup-vscode.py --force
Environment variables:
CLAUDE_PROJECT_DIR - Project root (auto-injected by Claude Code)CLAUDE_PLUGIN_ROOT - Plugin root (auto-injected by Claude Code)Generated Configurations:
launch.json:
tasks.json:
Python script executed in UE5 editor to start debugpy remote debugging server.
Key features:
Execution:
# Via ue5-python-executor
python ../ue5-python-executor/scripts/remote-execute.py \
--file scripts/start_debug_server.py
Output format:
[UE5-DEBUG] Starting debug server setup
[UE5-DEBUG] debugpy server listening on 127.0.0.1:19678
[UE5-DEBUG] Waiting for debugger attachment...
[UE5-DEBUG] READY
To change port:
scripts/start_debug_server.py (modify port number).vscode/launch.json (update "port" field in configurations)By default, local and remote paths are identical:
"pathMappings": [
{
"localRoot": "${workspaceFolder}",
"remoteRoot": "${workspaceFolder}"
}
]
When to customize:
This skill leverages Claude Code environment variables for seamless integration:
Auto-injected by Claude Code, pointing to the current project root.
Used by:
setup-vscode.py - Auto-detects project location for VSCode config generationExample:
# When CLAUDE_PROJECT_DIR=/Users/me/MyUE5Game
python scripts/setup-vscode.py
# Creates .vscode/ in /Users/me/MyUE5Game
Auto-injected by Claude Code, pointing to the plugin root directory.
Used by:
setup-vscode.py - Locates executor skill's scripts for task configurationFallback:
skills/ue5-vscode-debugger/scripts/setup-vscode.py)Uses debugpy (Python's Debug Adapter Protocol implementation):
start_debug_server.py runs in UE5, starts debugpy on port 19678VSCode Extensions:
Python Packages in UE5:
debugpy - Install via pip in UE5's Python environmentUE5 Configuration:
Causes:
Solutions:
# Install debugpy in UE5
python ../ue5-python-executor/scripts/remote-execute.py \
--code "import subprocess; subprocess.run(['pip', 'install', 'debugpy'])"
# Verify debugpy server starts
python ../ue5-python-executor/scripts/remote-execute.py \
--file scripts/start_debug_server.py
# Check port availability
lsof -i :19678
Causes:
Solutions:
localRoot and remoteRoot in launch.json match actual pathsCauses:
Solutions:
# Verify ue5-python-executor installed
ls ../ue5-python-executor/scripts/remote-execute.py
# Check UE5 configuration
python ../ue5-python-executor/scripts/check-config.py --check-only
# Test remote execution
python ../ue5-python-executor/scripts/remote-execute.py \
--code "print('test')"
Develop complex UE5 Python scripts with full debugging:
# Setup VSCode once
python scripts/setup-vscode.py
# Then develop iteratively:
# 1. Edit Python file
# 2. Set breakpoints
# 3. Press F5
# 4. Inspect variables, step through logic
# 5. Fix issues and repeat
Debug complex asset processing logic:
# process_assets.py
import unreal
def process_asset(asset_path):
# Set breakpoint here to inspect asset
asset = unreal.load_asset(asset_path)
# Step through processing
# Inspect asset properties in VSCode
pass
# Press F5 to debug
process_asset("/Game/MyAsset")
Debug editor automation workflows:
# automation.py
import unreal
def generate_thumbnails():
# Breakpoint to verify editor state
editor_lib = unreal.EditorLevelLibrary()
# Step through automation
# Watch variables in VSCode
pass
# F5 debug to verify each step
Extend tasks.json for project-specific workflows:
{
"label": "ue5-run-tests",
"type": "shell",
"command": "python",
"args": [
"${env:CLAUDE_PLUGIN_ROOT}/skills/ue5-python-executor/scripts/remote-execute.py",
"--file",
"${workspaceFolder}/tests/run_all.py"
]
}
Add custom debug configurations to launch.json:
{
"name": "UE5 Python: Debug Tests",
"type": "debugpy",
"request": "attach",
"connect": {
"host": "127.0.0.1",
"port": 19678
},
"preLaunchTask": "ue5-run-tests"
}
Use F5 debugging for complex logic - Breakpoints and variable inspection save time
Start debugpy server manually for long sessions - Use "Attach Only" to reconnect
Verify debugpy installation before first debugging session
Keep VSCode workspace at UE5 project root for correct path mappings
Use structured logging in production scripts, F5 debugging for development
This skill should be used when the user asks to "create an agent", "add an agent", "write a subagent", "agent frontmatter", "when to use description", "agent examples", "agent tools", "agent colors", "autonomous agent", or needs guidance on agent structure, system prompts, triggering conditions, or agent development best practices for Claude Code plugins.
This skill should be used when the user asks to "create a slash command", "add a command", "write a custom command", "define command arguments", "use command frontmatter", "organize commands", "create command with file references", "interactive command", "use AskUserQuestion in command", or needs guidance on slash command structure, YAML frontmatter fields, dynamic arguments, bash execution in commands, user interaction patterns, or command development best practices for Claude Code.
This skill should be used when the user asks to "create a hook", "add a PreToolUse/PostToolUse/Stop hook", "validate tool use", "implement prompt-based hooks", "use ${CLAUDE_PLUGIN_ROOT}", "set up event-driven automation", "block dangerous commands", or mentions hook events (PreToolUse, PostToolUse, Stop, SubagentStop, SessionStart, SessionEnd, UserPromptSubmit, PreCompact, Notification). Provides comprehensive guidance for creating and implementing Claude Code plugin hooks with focus on advanced prompt-based hooks API.