Roblox UtilitiesDevlHub Roblox Documentation

Class

BindableFunction

Inherits
Instance › Object
Memory category
Instances

An object which allows for synchronous two-way communication between scripts on the same side of the client-server boundary. Scripts invoking a BindableFunction yield until the corresponding callback is found.

The BindableFunction object allows for synchronous two-way communication between scripts on the same side of the client-server boundary. You can use it to define a custom callback function and invoke it manually by calling BindableFunction:Invoke(). The code invoking the function yields until the corresponding callback is found, and the callback receives the arguments that you passed to Invoke(). If the callback was never set, the script that invokes it will not resume execution.

As an alternative for one-way communication between two scripts on the same side of the client-server boundary, consider BindableEvent which does not yield for a return.

As stated, BindableFunctions do not allow for communication between the server and clients. If you are looking for this functionality, use a RemoteFunction as outlined in Remote events and callbacks.

See Bindable events and callbacks for code samples and further details on BindableFunction.

Parameter Limitations#

Any type of Roblox object such as an Enum, Instance, or others can be passed as a parameter when a BindableFunction is invoked, as well as Luau types such as numbers, strings, and booleans, although you should carefully explore the limitations.

Methods 1#

InvokeInvokes the BindableFunction which in turn calls the OnInvoke callback, returning any values returned by the callback.Yields

Invoke(arguments: Tuple): Tuple#

Yields

Invokes the BindableFunction which in turn calls the OnInvoke callback, returning any values returned by the callback. Invocations yield until the corresponding callback is found, and if the callback was never set, the script that invokes it will not resume execution.

Any type of Roblox object such as an Enum, Instance, or others can be passed as a parameter to Invoke(), as well as Luau types such as numbers, strings, and booleans, although you should carefully explore the limitations.

Only one function can be bound to Invoke() at a time. If you assign multiple functions, only the last one assigned will be used.

See Bindable events and callbacks for code samples and further details on Invoke().

NameTypeDefaultDescription
argumentsTupleValues to pass to the OnInvoke callback.
Returns
  • Tuple — Values returned from the OnInvoke callback.

Callbacks 1#

OnInvokeCallback for when the BindableFunction is invoked with Invoke().

OnInvoke(arguments: Tuple): Tuple#

This callback is called when the BindableFunction is invoked with Invoke(). It can be set multiple times but cannot be called directly. Invocations will yield until this callback is found and, if it is never set, the script that invoked it will not resume execution.

See Bindable events and callbacks for code samples and further details on OnInvoke.

NameTypeDefaultDescription
argumentsTupleThe parameters sent through Invoke().
Returns
  • Tuple — Values returned by the callback function.

Inherited members#

Inherited from Instance 58
Inherited from Object 6
Properties (2)

ClassName, className

Events (1)

Changed