BindableFunction
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.
Summary
Methods
Invokes the BindableFunction which in turn calls the OnInvoke callback, returning any values returned by the callback.
Properties
Methods
Invoke
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().