Skill flagged — suspicious patterns detected

ClawHub Security flagged this skill as suspicious. Review the scan results before using.

Godot Skill

Control Godot Editor via OpenClaw Godot Plugin. Use for Godot game development tasks including scene management, node manipulation, input simulation, debugging, and editor control. Triggers on Godot-related requests like inspecting scenes, creating nodes, taking screenshots, testing gameplay, or controlling the editor.

MIT-0 · Free to use, modify, and redistribute. No attribution required.
0 · 1.6k · 2 current installs · 2 all-time installs
byTom Jaejoon Lee@TomLeeLive
MIT-0
Security Scan
VirusTotalVirusTotal
Suspicious
View report →
OpenClawOpenClaw
Benign
high confidence
Purpose & Capability
Name/description match the code and SKILL.md: the extension registers a local 'godot_execute' tool and HTTP endpoints (/godot/*) to relay commands between OpenClaw and a Godot editor instance. No unrelated credentials, binaries, or external services are requested.
Instruction Scope
SKILL.md instructs the agent to use the 'godot_execute' tool and to run a local install script which copies the extension into ~/.openclaw/extensions/godot and restart the gateway. The runtime instructions operate within the Godot/editor domain (scene/node manipulation, input simulation, screenshots, reading scripts via the editor). There are no instructions to read unrelated system files or environment variables.
Install Mechanism
No network downloads or remote installers. The provided scripts/install-extension.sh merely copies the included extension/ files into the user's ~/.openclaw/extensions/godot directory. This is a low-risk, local install mechanism.
Credentials
The skill requires no environment variables, credentials, or external tokens. The plugin acts as a local gateway between OpenClaw and a Godot editor; requested permissions and file operations (copying extension files into the user's OpenClaw extension directory) are proportional to the stated function.
Persistence & Privilege
The skill is not force-included (always: false). Installing the extension places files in ~/.openclaw/extensions/godot and registers tools that the agent can invoke; model invocation is permitted by default (disableModelInvocation: false). This is expected for an integration but you may want to block autonomous invocation depending on trust.
Assessment
This skill is internally consistent with its stated purpose: it installs a local gateway extension and exposes a set of Godot-focused tools to the OpenClaw agent. Before installing: 1) Back up any active Godot projects (the README already advises this). 2) Confirm you trust the skill source (it references a GitHub repo but the package metadata shows no official homepage). 3) Be aware the extension exposes local HTTP endpoints under /godot/ and sets CORS to '*'; ensure your OpenClaw gateway is bound to localhost or protected by your firewall so remote sites cannot call these endpoints. 4) If you do not want the AI to autonomously control your editor, set disableModelInvocation/auto-invoke to true or require explicit user approval for tool calls. 5) Review the extension code yourself (index.ts) for any network calls or logging to external hosts before use; the provided code appears to keep traffic local and queue commands through a session mechanism, but you should verify the gateway binding and runtime behavior in your environment.

Like a lobster shell, security has layers — review code before you run it.

Current versionv1.2.7
Download zip
latestvk973f7e81g2bcff3tye3k7j2s580y7ga

License

MIT-0
Free to use, modify, and redistribute. No attribution required.

SKILL.md

Godot Plugin Skill

Control Godot 4.x Editor through 30 built-in tools. Supports 80+ node types.

First-Time Setup

If godot_execute tool is not available, install the gateway extension:

# From skill directory
./scripts/install-extension.sh

# Restart gateway
openclaw gateway restart

The extension files are in extension/ directory.

Quick Reference

Core Tools

CategoryKey Tools
Scenescene.create, scene.getCurrent, scene.open, scene.save
Nodenode.find, node.create, node.delete, node.getData
Transformtransform.setPosition, transform.setRotation, transform.setScale
Debugdebug.tree, debug.screenshot, console.getLogs
Inputinput.keyPress, input.mouseClick, input.actionPress
Editoreditor.play, editor.stop, editor.getState

Common Workflows

1. Scene Creation

Use godot_execute tool:

  • godot_execute(tool="scene.create", parameters={rootType: "Node2D", name: "Level1"})
  • godot_execute(tool="node.create", parameters={type: "CharacterBody2D", name: "Player"})
  • godot_execute(tool="scene.save")

2. Find & Modify Nodes

  • godot_execute(tool="node.find", parameters={name: "Player"})
  • godot_execute(tool="node.getData", parameters={path: "Player"})
  • godot_execute(tool="transform.setPosition", parameters={path: "Player", x: 100, y: 200})

3. Game Testing with Input

  • godot_execute(tool="editor.play")
  • godot_execute(tool="input.keyPress", parameters={key: "W"})
  • godot_execute(tool="input.actionPress", parameters={action: "jump"})
  • godot_execute(tool="debug.screenshot")
  • godot_execute(tool="editor.stop")

4. Check Logs

  • godot_execute(tool="console.getLogs", parameters={limit: 50})
  • godot_execute(tool="console.getLogs", parameters={type: "error", limit: 20})

Tool Categories

Console (2 tools)

  • console.getLogs - Get logs from Godot log file {limit: 100, type: "error"|"warning"|""}
  • console.clear - Placeholder (logs can't be cleared programmatically)

Scene (5 tools)

  • scene.getCurrent - Get current scene info
  • scene.list - List all .tscn/.scn files
  • scene.open - Open scene by path
  • scene.save - Save current scene
  • scene.create - Create new scene {rootType: "Node2D"|"Node3D"|"Control", name: "SceneName"}

Node (6 tools)

  • node.find - Find by name, type, or group
  • node.create - Create node (80+ types: CSGBox3D, MeshInstance3D, ColorRect, etc.)
  • node.delete - Delete node by path
  • node.getData - Get node info, children, transform
  • node.getProperty - Get property value
  • node.setProperty - Set property value (Vector2/3 auto-converted)

Transform (3 tools)

  • transform.setPosition - Set position {x, y} or {x, y, z}
  • transform.setRotation - Set rotation (degrees)
  • transform.setScale - Set scale

Editor (4 tools)

  • editor.play - Play current or custom scene
  • editor.stop - Stop playing
  • editor.pause - Toggle pause
  • editor.getState - Get playing state, version, project name

Debug (3 tools)

  • debug.screenshot - Capture viewport
  • debug.tree - Get scene tree as text
  • debug.log - Print message

Input (7 tools) - For Game Testing

  • input.keyPress - Press and release key {key: "W"}
  • input.keyDown - Hold key down
  • input.keyUp - Release key
  • input.mouseClick - Click at position {x, y, button: "left"|"right"|"middle"}
  • input.mouseMove - Move mouse to position {x, y}
  • input.actionPress - Press input action {action: "jump"}
  • input.actionRelease - Release input action

Script (2 tools)

  • script.list - List .gd files
  • script.read - Read script content

Resource (1 tool)

  • resource.list - List files by extension

Supported Keys for Input

A-Z, 0-9, SPACE, ENTER, ESCAPE, TAB, BACKSPACE, DELETE
UP, DOWN, LEFT, RIGHT
SHIFT, CTRL, ALT
F1-F12

Node Types for Creation

TypeDescription
Node2D2D spatial
Node3D3D spatial
Sprite2D2D sprite
CharacterBody2D2D character
CharacterBody3D3D character
RigidBody2D/3DPhysics body
Area2D/3DTrigger area
Camera2D/3DCamera
Label, ButtonUI elements

Tips

Input Simulation

  • Only works during Play mode
  • Use input.actionPress for mapped actions (from Input Map)
  • Use input.keyPress for direct key simulation

Finding Nodes

node.find {name: "Player"}      # By name substring
node.find {type: "Sprite2D"}    # By exact type
node.find {group: "enemies"}    # By group

Vector Properties

node.setProperty auto-converts dictionaries to Vector2/Vector3:

{path: "Cam", property: "zoom", value: {x: 2, y: 2}}  # → Vector2(2, 2)

Console Logs

console.getLogs {limit: 50}           # Last 50 lines
console.getLogs {type: "error"}       # Errors only
console.getLogs {type: "warning"}     # Warnings only

🔐 Security: Model Invocation Setting

When publishing to ClawHub, you can configure disableModelInvocation:

SettingAI Auto-InvokeUser Explicit Request
false (default)✅ Allowed✅ Allowed
true❌ Blocked✅ Allowed

Recommendation: true

Reason: During Godot development, it's useful for AI to autonomously perform supporting tasks like checking scene tree, taking screenshots, and inspecting nodes.

When to use true: For sensitive tools (payments, deletions, message sending, etc.)

Files

6 total
Select a file
Select a file to preview.

Comments

Loading comments…