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.
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 framesInput 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.
Related
- Too few arguments for "…()" call. Expected at least N
- Function "…()" not found in base self
- Every verified Godot 4 answer
- Invalid call to function '…' in base '…'. Expected N argument(s) in Godot 4
- Invalid argument for "…()" function: argument 1 should be "…" but is "…" in Godot 4
- Cannot get return value of call to "…()" because it returns "void" in Godot 4
- Invalid type in static function '…' in type '…'. Cannot convert argument in Godot 4
- Trying to return a value of type "…" from a function whose return type is "…" in Godot 4
Flockbay's agent reads Godot's debugger output and fixes errors like this one in your project, on the official Godot.
Download Flockbay free