Skip to content

BindableFunction

Supported Class Scripting & Networking

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.

Description

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.

Inheritance

Object → Instance → BindableFunction

Nova inheritance: Instance → BindableFunction

Methods

Invoke Supported Function Invokes the BindableFunction which in turn calls the OnInvoke callback, returning any values returned by the callback.
BindableFunction:Invoke(Tuple arguments): Tuple

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().

Roblox reference signature
BindableFunction:Invoke(arguments: Tuple): Tuple

Roblox documentation

Callbacks

OnInvoke Supported Callback Callback for when the BindableFunction is invoked with Invoke().
OnInvoke(Tuple arguments) -> Tuple

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

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.

Roblox reference signature
OnInvoke(arguments: Tuple) -> Tuple

Roblox documentation

Inherited members

Inherited from Instance: 8 properties, 36 methods, 7 events. They are documented on the base class page.

Roblox reference: BindableFunction

Generated from Nova's API dump and Roblox creator-docs. Nova-only members come from the engine's reflection metadata.