Up to date

This page is up to date for Godot 4.2. If you still find outdated information, please open an issue.


A built-in type representing a method or a standalone function.


Callable is a built-in Variant type that represents a function. It can either be a method within an Object instance, or a standalone function not related to any object, like a lambda function. Like all Variant types, it can be stored in variables and passed to other functions. It is most commonly used for signal callbacks.


func print_args(arg1, arg2, arg3 = ""):
    prints(arg1, arg2, arg3)

func test():
    var callable = Callable(self, "print_args")
    callable.call("hello", "world")  # Prints "hello world ".
    callable.call(Vector2.UP, 42, callable)  # Prints "(0, -1) 42 Node(node.gd)::print_args".
    callable.call("invalid")  # Invalid call, should have at least 2 arguments.

In GDScript, it's possible to create lambda functions within a method. Lambda functions are custom callables that are not associated with an Object instance. Optionally, lambda functions can also be named. The name will be displayed in the debugger, or when calling get_method.

func _init():
    var my_lambda = func (message):

    # Prints Hello everyone!
    my_lambda.call("Hello everyone!")

    # Prints "Attack!", when the button_pressed signal is emitted.
    button_pressed.connect(func(): print("Attack!"))

Note: Methods of native types such as Signal, Array, or Dictionary are not of type Callable in order to avoid unnecessary overhead. If you need to pass those methods as Callable, use a lambda function as a wrapper.

func _init():
    var my_dictionary = { "hello": "world" }

    # This will not work, `clear` is not a callable.

    # This will work, as lambdas are custom callables.
    create_tween().tween_callback(func(): my_dictionary.clear())


There are notable differences when using this API with C#. See Відмінності API C# в GDScript for more information.



Callable ( )


Callable ( Callable from )


Callable ( Object object, StringName method )



bind ( ... ) vararg const


bindv ( Array arguments )