italink/unrealclientprotocol/unreal-actor-editing
Claude Code and agent skill by italink/unrealclientprotocol
- community
Checking that the SKILL.md file is still in the repository.
Manage actors in UE levels via UCP. Use when the user asks to spawn, delete, move, duplicate, select, or otherwise manipulate actors in the Unreal Engine editor.
Install
npx vskill@latest install italink/unrealclientprotocol/unreal-actor-editingSKILL.md
Unreal Actor Editing
Manage actors in Unreal Engine levels through UCP's call command. This skill guides you to use engine-provided actor subsystems and libraries.
Prerequisite: The unreal-client-protocol skill must be available and the UE editor must be running with the UCP plugin enabled.
Engine Built-in Actor Libraries
UEditorActorSubsystem
CDO Path: /Script/UnrealEd.Default__EditorActorSubsystem
This is the primary API for actor manipulation in the editor:
| Function | Description | |
|---|---|---|
GetAllLevelActors() | Get all actors in the current level | |
GetAllLevelActorsOfClass(ActorClass) | Get all actors of a specific class | |
GetSelectedLevelActors() | Get currently selected actors | |
SetSelectedLevelActors(ActorsToSelect) | Set actor selection | |
SelectNothing() | Deselect all actors | |
SpawnActorFromClass(ActorClass, Location, Rotation) | Spawn a new actor | |
SpawnActorFromObject(ObjectToUse, Location, Rotation) | Spawn from an existing asset | |
DuplicateActor(ActorToDuplicate, ToWorld, Offset) | Duplicate an actor | |
DuplicateActors(ActorsToDuplicate, ToWorld, Offset) | Duplicate multiple actors | |
DestroyActor(ActorToDestroy) | Delete an actor | |
DestroyActors(ActorsToDestroy) | Delete multiple actors | |
SetActorTransform(Actor, WorldTransform) | Set actor transform | |
ConvertActors(Actors, ActorClass) | Convert actors to a different class |
Examples
Get all actors in level:
Get all static mesh actors:
Spawn a point light:
Destroy an actor:
UGameplayStatics
CDO Path: /Script/Engine.Default__GameplayStatics
Useful for runtime/game queries:
| Function | Description | |
|---|---|---|
GetAllActorsOfClass(WorldContextObject, ActorClass) | Find actors by class | |
GetAllActorsWithTag(WorldContextObject, Tag) | Find actors by tag | |
GetAllActorsOfClassWithTag(WorldContextObject, ActorClass, Tag) | Combined class + tag filter | |
GetAllActorsWithInterface(WorldContextObject, Interface) | Find actors implementing an interface | |
GetActorOfClass(WorldContextObject, ActorClass) | Get first actor of class | |
FindNearestActor(WorldContextObject, Origin, ActorClass) | Find nearest actor of class to a location | |
GetActorArrayAverageLocation(Actors) | Get average location of an array of actors | |
GetActorArrayBounds(Actors, bOnlyCollidingComponents) | Get combined bounds of an array of actors | |
GetPlayerPawn(WorldContextObject, PlayerIndex) | Get player pawn | |
GetPlayerController(WorldContextObject, PlayerIndex) | Get player controller | |
GetPlayerCameraManager(WorldContextObject, PlayerIndex) | Get camera manager |
UEditorLevelLibrary
CDO Path: /Script/EditorScriptingUtilities.Default__EditorLevelLibrary
Unique level editing functions not covered by UEditorActorSubsystem:
| Function | Description | |
|---|---|---|
JoinStaticMeshActors(ActorsToJoin, JoinOptions) | Merge static meshes into one | |
ReplaceSelectedActors(InAssetPath) | Replace selected actors with given asset | |
GetPIEWorlds() | Get worlds from Play-In-Editor sessions |
Layer Management (ULayersSubsystem)
Get the instance via FindObjectInstances with ClassName set to /Script/UnrealEd.LayersSubsystem.
| Function | Description | |
|---|---|---|
CreateLayer(LayerName) | Create a new layer | |
DeleteLayer(LayerToDelete) | Delete a layer | |
RenameLayer(OriginalLayerName, NewLayerName) | Rename a layer | |
AddActorToLayer(Actor, LayerName) | Add a single actor to a layer | |
RemoveActorFromLayer(Actor, LayerName) | Remove a single actor from a layer | |
AddActorsToLayer(Actors, LayerName) | Add multiple actors to a layer | |
GetActorsFromLayer(LayerName) | Get all actors in a layer | |
SetLayerVisibility(LayerName, bIsVisible) | Show/hide a layer | |
SelectActorsInLayer(LayerName) | Select all actors in a layer | |
AddAllLayerNamesTo(OutLayers) | Get all layer names |
Examples
Find the LayersSubsystem instance:
Create a layer (use the instance path returned above):
Add an actor to a layer:
Actor Grouping (UActorGroupingUtils)
Get the CDO at /Script/UnrealEd.Default__ActorGroupingUtils, then call Get() on it to obtain the singleton instance.
| Function | Description | |
|---|---|---|
GroupActors(Actors) | Group specified actors | |
UngroupActors(Actors) | Ungroup specified actors | |
GroupSelected() | Group currently selected actors | |
UngroupSelected() | Ungroup currently selected actors | |
LockSelectedGroups() | Lock selected groups | |
UnlockSelectedGroups() | Unlock selected groups | |
CanGroupActors() | Check if current selection can be grouped |
Examples
Get the grouping utils instance:
Group selected actors (use the instance returned by Get):
Actor Folders (on Actor instances)
Functions called directly on actor instance paths:
| Function | Description | |
|---|---|---|
GetFolderPath() | Get the actor's folder path in the outliner | |
SetFolderPath(NewFolderPath) | Set the actor's folder path in the outliner |
Examples
Get an actor's folder:
Move an actor into a folder:
Actor Attachment (on Actor instances)
Functions called directly on actor instance paths:
| Function | Description | |
|---|---|---|
K2_AttachToActor(ParentActor, SocketName, LocationRule, RotationRule, ScaleRule, bWeldSimulatedBodies) | Attach this actor to a parent actor | |
K2_DetachFromActor(LocationRule, RotationRule, ScaleRule) | Detach this actor from its parent |
Rules are EAttachmentRule values: KeepRelative, KeepWorld, SnapToTarget.
Examples
Attach an actor to another:
Detach an actor:
Level Management (ULevelEditorSubsystem + UEditorLevelUtils)
ULevelEditorSubsystem
Get the instance via FindObjectInstances with ClassName set to /Script/LevelEditor.LevelEditorSubsystem.
| Function | Description | |
|---|---|---|
NewLevel(AssetPath) | Create a new level | |
NewLevelFromTemplate(AssetPath, TemplatePath) | Create a new level from template | |
LoadLevel(AssetPath) | Load a level | |
SaveCurrentLevel() | Save the current level | |
SaveAllDirtyLevels() | Save all modified levels | |
SetCurrentLevelByName(LevelName) | Switch current level | |
GetCurrentLevel() | Get the current level | |
PilotLevelActor(ActorToPilot) | Pilot an actor in the viewport | |
EjectPilotLevelActor() | Stop piloting an actor |
Examples
Find the LevelEditorSubsystem instance:
Save the current level:
UEditorLevelUtils
CDO Path: /Script/UnrealEd.Default__EditorLevelUtils
| Function | Description | |
|---|---|---|
CreateNewStreamingLevel(LevelStreamingClass, NewLevelPath, bMoveSelectedActors) | Create a new streaming level | |
MoveActorsToLevel(ActorsToMove, DestLevel, bWarnAboutReferences, bWarnAboutRenaming) | Move actors to another level | |
K2_AddLevelToWorld(World, LevelPath, LevelStreamingClass) | Add a sub-level to the world | |
K2_RemoveLevelFromWorld(Level) | Remove a sub-level from the world | |
SetLevelVisibility(Level, bShouldBeVisible, bForceLayersVisible) | Show/hide a level | |
GetLevels(World) | Get all levels in a world |
Viewport & Camera (UUnrealEditorSubsystem)
Get the instance via FindObjectInstances with ClassName set to /Script/UnrealEd.UnrealEditorSubsystem.
| Function | Description | |
|---|---|---|
GetLevelViewportCameraInfo(OutCameraLocation, OutCameraRotation) | Get the viewport camera position and rotation | |
SetLevelViewportCameraInfo(CameraLocation, CameraRotation) | Set the viewport camera position and rotation | |
GetEditorWorld() | Get the current editor world | |
ScreenToWorld(ScreenPosition) | Convert screen coordinates to world coordinates | |
WorldToScreen(WorldPosition) | Convert world coordinates to screen coordinates |
Also available via UEditorUtilityLibrary:
CDO Path: /Script/Blutility.Default__EditorUtilityLibrary
| Function | Description | |
|---|---|---|
GetSelectionBounds(Origin, BoxExtent, SphereRadius) | Get bounding info of the current selection |
Examples
Find the UnrealEditorSubsystem instance:
Get viewport camera info:
Set viewport camera position:
Get selection bounds:
Common Patterns
Discover and inspect actors
First get all actors, then inspect a specific actor (run as separate calls):
Move an actor
Use the unreal-object-operation skill to set properties on the actor's root component:
This is the start of the file. Read the full SKILL.md on GitHub.
Security
- Security scanPassed, 100 of 100Pattern checks on the skill's files.
- Model reviewNot runA model review is scheduled for the next rescan.
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingSkills/unreal-actor-editing/SKILL.md
Popularity
- Repository stars
- 123
- Repository forks
- 14
- 7-day trend score
- 24
Stars and forks are for the whole GitHub repository, not this skill alone. Refreshed 23 Aug 2026, 2 months ago.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/italink/unrealclientprotocol/unreal-actor-editing)