The function signature doesn't match the parent. Parent signature is "…" in Godot 4

By Eduardo Orellana · Updated

The script overrides a method of its parent class with a different parameter list. func _process(): with no delta fails to parse with The function signature doesn't match the parent. Parent signature is "_process(float) -> void". Declare it as the parent does: func _process(delta: float) -> void, and prefix the parameter with an underscore if you do not use it.

AppImage, x86_64. Ubuntu 22.04, Debian 12, Fedora 39 or newer.

Intel or AMD Chromebook, with Linux turned on.

Download for macOSDownload for Windows

What Godot is checking

When a script defines a function that a parent class already has, the analyzer compares the two: the number of parameters, their types, and the return type. A mismatch stops the script, and the message prints the parent's signature to copy.

Godot 4 checks this for the engine's virtual methods too: _process, _physics_process, _input, _unhandled_input, _draw, _ready and the rest.

Reproduce it

A _process() override with no delta parameter.

extends Node

func _process():
	pass

What Godot 4.7.2 prints

Godot Engine v4.7.2.stable.mono.official.ed1daf0bf - https://godotengine.org

SCRIPT ERROR: Parse Error: The function signature doesn't match the parent. Parent signature is "_process(float) -> void".
   at: GDScript::reload (res://answers/function-signature-doesnt-match-the-parent/repro.gd:3)
ERROR: Failed to load script "res://answers/function-signature-doesnt-match-the-parent/repro.gd" with error "Parse error".
   at: load (modules/gdscript/gdscript_resource_format.cpp:46)

Fix it

Match the parent signature; an underscore marks an unused parameter.

extends Node

var frames := 0

func _process(_delta: float) -> void:
	frames += 1
	if frames == 3:
		print("three frames")

What the fixed script prints

Godot Engine v4.7.2.stable.mono.official.ed1daf0bf - https://godotengine.org

three frames

Input callbacks take one event

_input(event: InputEvent), _unhandled_input(event: InputEvent) and _gui_input(event: InputEvent) each take exactly one parameter. Declaring them with none, or two, is this error.

Verified on Godot 4.7.2

Both scripts on this page were run headless on Godot 4.7.2 (4.7.2.stable.mono.official.ed1daf0bf) on 18 October 2026, and the output above is what Godot printed, unedited.

Where the check lives in Godot's source: [gdscript_analyzer.cpp line 1973, the message](https://github.com/godotengine/godot/blob/4.7.2-stable/modules/gdscript/gdscript_analyzer.cpp#L1973).

Questions

Why the underscore in _delta?
It tells GDScript the parameter is unused on purpose, which silences the UNUSED_PARAMETER warning. The signature still matches.
Can I give the parameter a different name?
Yes. Names do not need to match; the count, types and return type do.