From launch-ue5-project
Use when the user wants to launch / open / run a UE5 project or says "啟動專案"、"打開 Unreal 編輯器"、"開專案"、"把專案跑起來"、"launch the editor", especially for projects that ship (or should ship) a repo-root launch-project.sh dev launcher. Covers macOS UnrealEditor launch, Live-Coding hot-reload dylib residue cleanup, and headless UBT pre-build of a missing plugin dylib.
How this skill is triggered — by the user, by Claude, or both
Slash command
/launch-ue5-project:launch-ue5-projectThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Projects in this ecosystem launch the Unreal Editor through a repo-root
Projects in this ecosystem launch the Unreal Editor through a repo-root
launch-project.sh. That script kills a stale editor, cleans Live-Coding
hot-reload dylib residue (stale versioned UnrealEditor-*-<n>.dylib files crash
the editor on class registration), headlessly pre-builds a missing plugin dylib
(the editor's modal "rebuild missing modules" path is unreliable on macOS), then
nohup-launches the editor detached. Reproducing those steps by hand is the
common way to a crashed or hung editor — always go through the script.
digraph {
"launch-project.sh at repo root?" [shape=diamond];
"Run it" [shape=box];
"Ask user: create one?" [shape=diamond];
"Scaffold from template, then run" [shape=box];
"Stop — report, don't guess a launch cmd" [shape=box];
"launch-project.sh at repo root?" -> "Run it" [label="yes"];
"launch-project.sh at repo root?" -> "Ask user: create one?" [label="no"];
"Ask user: create one?" -> "Scaffold from template, then run" [label="yes"];
"Ask user: create one?" -> "Stop — report, don't guess a launch cmd" [label="no"];
}
From the project repo root, check for ./launch-project.sh. It lives at the
repo root even when the .uproject sits in a subdir (e.g. SampleProject/).
Run ./launch-project.sh (or bash ./launch-project.sh). It returns after
printing Editor PID: <n>. A missing plugin dylib triggers a headless UBT build
first, so allow up to ~10 min (long Bash timeout, or background it). Report the
printed PID. Do not block waiting on the GUI and do not substitute your
own UnrealEditor … invocation.
Ask the user whether to create launch-project.sh (do not create it
unprompted). Only if they agree: copy launch-project.template.sh (in this
skill's directory) to the repo root as launch-project.sh, chmod +x it, and
fill the # >>> FILL placeholders by inspecting the project:
| Placeholder | Where to get it |
|---|---|
PROJECT_SUBDIR | repo-relative dir holding the .uproject (. if at root) — find . -name '*.uproject' |
UPROJECT_BASENAME | the .uproject filename without extension |
UE_VERSION | EngineAssociation in the .uproject, else EngineVersion in the plugin .uplugin (e.g. 5.7) |
PLUGIN_NAME | the source plugin under Plugins/<Name>/ whose dylib needs rebuilds; leave "" for content/Blueprint-only projects |
Then run it (step 2).
UE_EDITOR path is macOS. For Windows/Linux,
say so and stop rather than improvise a launcher.UnrealEditor command "to
save a step" — the residue cleanup and headless pre-build exist precisely
because skipping them crashes the editor.Creates, edits, and optimizes skills for Claude Code, including drafting, evaluating with test prompts, iterating on performance, and improving skill descriptions for better triggering accuracy.
npx claudepluginhub echoulen/ue5-marketplace --plugin launch-ue5-project