| name | prepare-godot-scene-resource |
| description | Use when preparing a selected generated asset for Godot scene/resource handoff with sockets, collider, scale, material, metadata, and validation reports. |
| version | 1.0.0 |
| author | Project Agents |
| license | Project-internal |
| metadata | {"hermes":{"tags":["godot","scene","resource","asset-production"],"related_skills":["asset-metadata-writer","score-readability-from-game-camera"]}} |
Prepare Godot Scene / Resource
Overview
Defines the handoff contract from selected generated asset to Godot-ready scene/resource preparation. This skill standardizes the report required before an asset is promoted from raw candidate to prototype content.
The goal is not just “import a mesh.” The goal is a valid Godot handoff: .glb/mesh/material inputs, a .tscn scene wrapper, typed .tres Resource definition hooks, sockets, simple colliders, scale, metadata, presentation/feedback IDs, and validation notes.
When to Use
- After a candidate is shortlisted for playable prototype.
- Before importing meshes/textures into Godot content folders.
- When checking whether a prompt produced usable geometry.
- When promoting an asset from generated candidate to Godot scene/resource handoff.
Input Contract
selected_candidate:
mesh_path:
texture_paths: []
content_id:
asset_type:
required_sockets: []
collider_shape:
scale_reference:
resource_type:
scene_role:
presentation_id:
feedback_ids: []
Output Contract
godot_scene_path:
godot_resource_path:
socket_report:
collider_report:
scale_report:
material_report:
metadata_path:
presentation_id:
feedback_ids: []
validation_status:
Scene Expectations
Gameplay-facing assets should be wrapped as Godot scenes, not left as loose meshes:
EntityRoot CharacterBody3D / Node3D / Area3D
Visual Node3D
Colliders / Hitboxes / Hurtboxes
Sockets Node3D
HitCenter
VFX_Core
VFX_Muzzle / VFX_Cast / VFX_Impact when relevant
UI_Anchor when relevant
Resource Expectations
If the asset affects gameplay, it should link to a typed Resource definition:
WeaponDefinitionResource.tres
EnemyDefinitionResource.tres
RoomDefinitionResource.tres
BossAbilityDefinitionResource.tres
StyleKitDefinitionResource.tres
FeedbackDefinitionResource.tres
PresentationCatalogResource.tres
The Resource owns stable ID, tags, balance data, presentation IDs, feedback IDs, validation expectations, and production metadata references. Complex behavior belongs in domain/runtime scripts, not inside ad-hoc scene wiring.
Gameplay definition Resources must not directly reference concrete scenes, materials, VFX scenes, or audio streams. Use presentation_id and feedback_ids so PresentationCatalogResource and FeedbackDefinitionResource can resolve the concrete assets. Each feedback definition owns one stable feedback_id.
Path Expectations
Official promoted assets use full ContentId folders:
res://art/official/<content_id>/source/
res://art/official/<content_id>/clean/
res://art/official/<content_id>/preview/
res://art/official/<content_id>/asset.meta.json
Experimental candidates stay outside official loading paths:
res://art/experiments/
res://content/experiments/
Common Pitfalls
- Importing art without sockets/pivot plan.
- Allowing scale drift across enemies, weapons, and pickups.
- Treating material beauty as more important than gameplay read.
- Using raw mesh collision instead of simple authored colliders.
- Burying gameplay rules inside scene/node wiring that validators cannot inspect.
- Forgetting that Godot 3D is Y-up: ground plane is X/Z, height is Y.
- Putting direct scene/material/VFX/audio references into gameplay definition Resources instead of using presentation/feedback IDs.
- Promoting placeholder assets without lightweight metadata.
Verification Checklist