BindableFunction
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.
Memory category | Instances |
---|
Member index 2
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 Custom 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.
History 8
- 462 Change ThreadSafety of OnInvoke from to Unsafe
- 462 Change ThreadSafety of Invoke from to Unsafe
- 79 Change Tags of BindableFunction from [preliminary] to []
- 78 Change Tags of BindableFunction from [] to [preliminary]
- 79 Change Tags of BindableFunction from [preliminary] to []
- 51 Add OnInvoke
- 51 Add Invoke
- 51 Add BindableFunction
Members 2
Invoke
Parameters (1) | ||
---|---|---|
arguments | Tuple | |
Returns (1) | ||
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 Custom Events and Callbacks for code samples and further details on Invoke().
Thread safety | Unsafe |
---|
OnInvoke
Parameters (1) | ||
---|---|---|
arguments | Tuple | |
Returns (1) | ||
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 Custom Events and Callbacks for code samples and further details on OnInvoke.
Thread safety | Unsafe |
---|