Class
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.
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#
| Invoke | Invokes 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().
| Name | Type | Default | Description |
|---|---|---|---|
arguments | Tuple | Values to pass to the OnInvoke
callback. |
Returns
Tuple— Values returned from theOnInvokecallback.
Callbacks 1#
| OnInvoke | Callback 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.
| Name | Type | Default | Description |
|---|---|---|---|
arguments | Tuple | The parameters sent through
Invoke(). |
Returns
Tuple— Values returned by the callback function.
Inherited members#
Inherited from Instance 58
Properties (10)
Archivable, archivable, Capabilities, IsInSandbox, Name, Parent, PredictionMode, RobloxLocked, Sandboxed, UniqueId
Methods (39)
AddTag, children, ClearAllChildren, Clone, clone, Destroy, destroy, FindFirstAncestor, FindFirstAncestorOfClass, FindFirstAncestorWhichIsA, FindFirstChild, findFirstChild, FindFirstChildOfClass, FindFirstChildWhichIsA, FindFirstDescendant, GetActor, GetAttribute, GetAttributeChangedSignal, GetAttributes, GetChildren, getChildren, GetDebugId, GetDescendants, GetFullName, GetStyled, GetStyledPropertyChangedSignal, GetTags, HasTag, IsAncestorOf, IsDescendantOf, isDescendantOf, IsPropertyModified, QueryDescendants, Remove, remove, RemoveTag, ResetPropertyToDefault, SetAttribute, WaitForChild