💻 Coding

Godot 4.3 GDScript Node from a Gameplay Brief (Input Map, No get_node in _process; 4.3 vs 4.2 LTS Fork)

Write a Godot 4.3 GDScript node from a gameplay brief. Use the Input Map. Do not call get_node in _process. Fork Unity-style Find and 4.2 yield.

0.0
0Reviews
P
August 27, 2026

Prompt

Act as a Godot GDScript sketcher who only uses a pasted gameplay brief. You write one node script for Godot 4.3 (or the locked version). You use Input Map actions. You do not call get_node or get_node_or_null inside _process or _physics_process. This is not a Unity MonoBehaviour, not a C# Godot port, and not a full project export.
You work only from Inputs. Do not invent stats, citations, quotes, URLs, names, IDs, or records that are not in Inputs.

Inputs:
- Gameplay brief (what the node does, scene tree names I allow): [Brief]
- Godot version I lock (4.3 / 4.2 LTS / UNKNOWN): [Version]
- Input Map actions I allow: [Actions]
- Node type I allow (CharacterBody2D or other named type): [Type]
- Child node paths I may cache in _ready: [Paths]
- Words I must not use: [Banned]
- What I must never invent: [Never]
- Output format: [Format]
- Language for comments: [Lang]
- Fork notes I require (4.3 vs 4.2): [Fork]

Generate:
1. Honesty ledger: Brief, Version, Actions, Type, Paths, Fork, Lang. Forbidden: extra actions, extra child names, package versions not locked.
2. Version fork: if Version is 4.3, use await and typed arrays as 4.3. If 4.2 LTS, do not use 4.3-only APIs; mark yield as 4.2-only if Brief needs a coroutine. If UNKNOWN, write VERSION UNKNOWN and do not pick 4.3 by default in code comments.
3. Script: one file. class_name only if Brief names it. extends Type. @onready or _ready cache for Paths only. No get_node in _process or _physics_process.
4. Input: Input.is_action_pressed / just_pressed only for Actions. If an action is needed and not listed, write NOT IN INPUTS rather than adding 'jump'.
5. Refuse: Unity Input.GetAxis, GameObject.Find, FindObjectOfType, GetComponent in Update, C# MonoBehaviour.
6. Comments: Lang. Each cached path quoted from Paths.
7. Never: invent a singleton Autoload name, an addon, or a Godot 4.4 API if Version is 4.3 or 4.2.
8. Compliance pass: cut Banned and Never. Print that Version is quoted or UNKNOWN. Format as Format.

Constraints:
- Godot GDScript node from Brief. Not a Unity MonoBehaviour and not a full project.
- No get_node in _process or _physics_process.
- Only Actions and Paths named in Inputs.
- Honor the 4.3 vs 4.2 LTS fork.
- No emojis.

Instructions

Replace every [bracket] with your details before running. Works on ChatGPT, Claude, and Gemini.

Examples

Example Input

Brief: top-down 2D courier; CharacterBody2D named Courier; move on floor; pick up a parcel Area2D named ParcelPickup; deliver to Marker2D named DropZone. Speed 180 as pasted. No jump. No camera script.
Version: Godot 4.3 (do not use 4.2 yield; do not invent 4.4)
Actions: move_left, move_right, move_up, move_down, interact
Type: CharacterBody2D
Paths: ParcelPickup as Area2D sibling path ../ParcelPickup; DropZone as Marker2D sibling path ../DropZone
Banned: get_node inside _process, Input.GetAxis, GameObject.Find, yield(
Never: invent jump action, invent Autoload, invent a C# class
Format: ledger + fork + gdscript + refuse + gaps
Lang: English comments
Fork: 4.3 await ok; 4.2 LTS would use yield and is not this lock

Example Output

1. Ledger. Courier CharacterBody2D. Speed 180 as pasted. ParcelPickup Area2D path ../ParcelPickup. DropZone Marker2D path ../DropZone. Actions: move_left, move_right, move_up, move_down, interact. Version Godot 4.3. Type CharacterBody2D. Lang English. Forbidden: jump, Autoload invent, C# class, get_node in _process, Input.GetAxis, GameObject.Find, yield(, Godot 4.4 API, camera script.

2. Fork. Version 4.3 quoted. await allowed. 4.2 yield not used. 4.4 API refused. If this were 4.2 LTS: rewrite coroutines with yield and mark typed array differences; that fork is NOT THIS LOCK.

3. Script.
extends CharacterBody2D
const SPEED := 180.0
@onready var parcel: Area2D = $"../ParcelPickup"
@onready var drop: Marker2D = $"../DropZone"
var carrying := false
func _physics_process(_delta: float) -> void:
    var dir := Vector2(
        Input.get_axis("move_left", "move_right"),
        Input.get_axis("move_up", "move_down"))
    velocity = dir.normalized() * SPEED if dir != Vector2.ZERO else Vector2.ZERO
    move_and_slide()
    if Input.is_action_just_pressed("interact"):
        _try_interact()
func _try_interact() -> void:
    # Uses cached parcel and drop from _ready/@onready. No get_node here.
    if not carrying and parcel.overlaps_body(self):
        carrying = true
    elif carrying and global_position.distance_to(drop.global_position) < 24.0:
        carrying = false
Note: Input.get_axis is Godot Input Map, not Unity Input.GetAxis. Actions quoted from Actions.

4. Input. Only move_left, move_right, move_up, move_down, interact. Jump NOT IN INPUTS. No extra action.

5. Refuse. Unity Input.GetAxis as Unity API: refused (name collision explained). GameObject.Find: refused. FindObjectOfType: refused. MonoBehaviour: refused. get_node in _process: none present.

6. Comments English. Paths quoted. Speed 180 quoted.

7. Never. Autoload NOT IN INPUTS. C# class refused. Jump refused.

8. Compliance. Version Godot 4.3 quoted. Banned cut. Format ledger+fork+gdscript+refuse+gaps. Gaps: collision layers, parcel signal names, animation tree, tilemap, project.godot Input Map dump.

Missing-data policy: if a field was blank, write NOT IN INPUTS rather than guessing. Lock any tool version named in Inputs; if unnamed, write unknown. No invented testimonials, star ratings, or press logos. If legal, clinical, insurance, HR, education-plan, or veterinary content appears, add a one-line not-advice and de-identify banner. Quote banned-word hits and cut them. End with a gaps list of five bullets the user still owes you. Character and byte caps in the job are hard; print counts when relevant. Refuse to backfill DOIs, exam dumps, PHI, PII, or compensation promises not in Inputs.

Reviews (0)

Please login to leave a review.
Loading reviews...