API:Class/RemoteFunction

No Children Modifiers: Some of the Instance members on this class page have been hidden, because this class should not need to modify or handle children. You can still use those members, but it is not recommended.

ExplorerImageIndex74.pngRemoteFunction : Object Icon.pngInstance

RemoteFunctions are used to create in-game APIs that both the client and the server can use to communicate with each other. Like BindableFunctions, RemoteFunctions can be invoked [called] to do a certain action, and return the results of this action. If the result is not needed then it is recommended to use a RemoteEvent instead, as its call is asynchronous and doesn't need to wait for a response to continue execution. Mind that there are some limitations.

Properties

PropertiesmemberhiddenProperties [toggle]

Inherited from Object Icon.pngInstance:
boolArchivable

Determines if an object can be Clone or saved to file.

|RMD member="API:Class/Instance/Archivable"|Determines if an object can be Clone or saved to file.|/RMD|
stringClassName [readonly]

The unique name of this type of Instance.

|RMD member="API:Class/Instance/ClassName"|The unique name of this type of Instance.|/RMD|
stringName

A non-unique identifier for the object.

|RMD member="API:Class/Instance/Name"|A non-unique identifier for the object.|/RMD|
Ref<Instance>Parent

The hierarchical parent of the object.

|RMD member="API:Class/Instance/Parent"|The hierarchical parent of the object.|/RMD|
intDataCost [LocalUserSecurity] [deprecated] [readonly]

Deprecated. Do not use.

|RMD member="API:Class/Instance/DataCost"|Deprecated. Do not use.|/RMD|
boolRobloxLocked [PluginSecurity]

If true, the object and its descendants cannot be indexed or edited by a Script or LocalScript and will throw an error if it is attempted.

|RMD member="API:Class/Instance/RobloxLocked"|If true, the object and its descendants cannot be indexed or edited by a Script or LocalScript and will throw an error if it is attempted.|/RMD|
boolarchivable [deprecated] [hidden]

Deprecated in favor of Archivable.

|RMD member="API:Class/Instance/archivable"|Deprecated in favor of Archivable.|/RMD|
stringclassName [deprecated] [readonly]

Deprecated in favor of ClassName.

|RMD member="API:Class/Instance/className"|Deprecated in favor of ClassName.|/RMD|
Determines if an object can be Clone or saved to file.
ClassName [readonly]
The unique name of this type of Instance.
A non-unique identifier for the object.
The hierarchical parent of the object.
DataCost [LocalUserSecurity] [deprecated] [readonly]
Deprecated. Do not use.
RobloxLocked [PluginSecurity]
If true, the object and its descendants cannot be indexed or edited by a Script or LocalScript and will throw an error if it is attempted.
archivable [deprecated] [hidden]
Deprecated in favor of Archivable.
className [deprecated] [readonly]
Deprecated in favor of ClassName.

Functions

FunctionsmemberhiddenFunctions [toggle]

Inherited from Object Icon.pngInstance:
Ref<Instance>Clone ( )

Returns a copy of the object, including descendants, but only if the object is Archivable.

|RMD member="API:Class/Instance/Clone"|Returns a copy of the object, including descendants, but only if the object is Archivable.|/RMD|
voidDestroy ( )

Sets the Parent property to nil, locks the Parent property, disconnects all connections and calls Destroy() on all children.

|RMD member="API:Class/Instance/Destroy"|Sets the Parent property to nil, locks the Parent property, disconnects all connections and calls Destroy() on all children.|/RMD|
Ref<Instance>FindFirstAncestor ( string name )

Returns the first ancestor whose Name is equal to name, or nil if none can be found.

|RMD member="API:Class/Instance/FindFirstAncestor"|Returns the first ancestor whose Name is equal to name, or nil if none can be found.|/RMD|
Ref<Instance>FindFirstAncestorOfClass ( string className )

Returns the first ancestor whose ClassName is equal to className, or nil if none can be found.

|RMD member="API:Class/Instance/FindFirstAncestorOfClass"|Returns the first ancestor whose ClassName is equal to className, or nil if none can be found.|/RMD|
Ref<Instance>FindFirstAncestorWhichIsA ( string className )

Returns the first ancestor that inherits the class className, or nil if none can be found.

|RMD member="API:Class/Instance/FindFirstAncestorWhichIsA"|Returns the first ancestor that inherits the class className, or nil if none can be found.|/RMD|
Ref<Instance>FindFirstChildOfClass ( string className )

Returns the first Instance whose ClassName is equal to className, or nil, if no such object is found with that ClassName.

|RMD member="API:Class/Instance/FindFirstChildOfClass"|Returns the first Instance whose ClassName is equal to className, or nil, if no such object is found with that ClassName.|/RMD|
Ref<Instance>FindFirstChildWhichIsA ( string className, bool recursive = false )

Returns the first child that inherits the class className, or nil if none can be found.

|RMD member="API:Class/Instance/FindFirstChildWhichIsA"|Returns the first child that inherits the class className, or nil if none can be found.|/RMD|
array<Instance>GetDescendants ( )

Returns an array containing all of the descendants of the instance.

|RMD member="API:Class/Instance/GetDescendants"|Returns an array containing all of the descendants of the instance.|/RMD|
stringGetFullName ( )

Returns a string which shows the object's ancestry chain.

|RMD member="API:Class/Instance/GetFullName"|Returns a string which shows the object's ancestry chain.|/RMD|
RBXScriptSignalGetPropertyChangedSignal ( string property )

Returns a signal that is fired when the specified property is changed on this object.

|RMD member="API:Class/Instance/GetPropertyChangedSignal"|Returns a signal that is fired when the specified property is changed on this object.|/RMD|
boolIsA ( string className )

Returns true if the object is an instance of the given class, or if the object's class inherits from the given class.

|RMD member="API:Class/Instance/IsA"|Returns true if the object is an instance of the given class, or if the object's class inherits from the given class.|/RMD|
boolIsDescendantOf ( Instance ancestor )

Returns true if the object is a descendant of the given ancestor.

|RMD member="API:Class/Instance/IsDescendantOf"|Returns true if the object is a descendant of the given ancestor.|/RMD|
stringGetDebugId ( int scopeLength = 4 ) [PluginSecurity] [notbrowsable]

Returns a coded string of the object's DebugId used internally by Roblox.

|RMD member="API:Class/Instance/GetDebugId"|Returns a coded string of the object's DebugId used internally by Roblox.|/RMD|
voidRemove ( ) [deprecated]

Deprecated. Do not use.

|RMD member="API:Class/Instance/Remove"|Deprecated. Do not use.|/RMD|
Instanceclone ( ) [deprecated]

Deprecated in favor of Clone.

|RMD member="API:Class/Instance/clone"|Deprecated in favor of Clone.|/RMD|
voiddestroy ( ) [deprecated]

Deprecated in favor of Destroy.

|RMD member="API:Class/Instance/destroy"|Deprecated in favor of Destroy.|/RMD|
boolisA ( string className ) [deprecated]

Deprecated in favor of IsA.

|RMD member="API:Class/Instance/isA"|Deprecated in favor of IsA.|/RMD|
boolisDescendantOf ( Instance ancestor ) [deprecated]

Deprecated in favor of IsDescendantOf.

|RMD member="API:Class/Instance/isDescendantOf"|Deprecated in favor of IsDescendantOf.|/RMD|
voidremove ( ) [deprecated]

Deprecated in favor of Remove.

|RMD member="API:Class/Instance/remove"|Deprecated in favor of Remove.|/RMD|
Clone ( )
Returns a copy of the object, including descendants, but only if the object is Archivable.
Sets the Parent property to nil, locks the Parent property, disconnects all connections and calls Destroy() on all children.
Returns the first ancestor whose Name is equal to name, or nil if none can be found.
Returns the first ancestor whose ClassName is equal to className, or nil if none can be found.
Returns the first ancestor that inherits the class className, or nil if none can be found.
Returns the first Instance whose ClassName is equal to className, or nil, if no such object is found with that ClassName.
FindFirstChildWhichIsA ( string className, bool recursive = false )
Returns the first child that inherits the class className, or nil if none can be found.
Returns an array containing all of the descendants of the instance.
Returns a string which shows the object's ancestry chain.
Returns a signal that is fired when the specified property is changed on this object.
IsA ( string className )
Returns true if the object is an instance of the given class, or if the object's class inherits from the given class.
Returns true if the object is a descendant of the given ancestor.
GetDebugId ( int scopeLength = 4 ) [PluginSecurity] [notbrowsable]
Returns a coded string of the object's DebugId used internally by Roblox.
Remove ( ) [deprecated]
Deprecated. Do not use.
clone ( ) [deprecated]
Deprecated in favor of Clone.
destroy ( ) [deprecated]
Deprecated in favor of Destroy.
isA ( string className ) [deprecated]
Deprecated in favor of IsA.
isDescendantOf ( Instance ancestor ) [deprecated]
Deprecated in favor of IsDescendantOf.
remove ( ) [deprecated]
Deprecated in favor of Remove.

YieldFunctions

YieldFunctions [toggle]

Tuple<Variant>InvokeClient ( Player player, Tuple<Variant> arguments )

Calls the method bound to the RemoteFunction by OnClientInvoke for the given Player. Use from a Script.

|RMD member="API:Class/RemoteFunction/InvokeClient"|Calls the method bound to the RemoteFunction by OnClientInvoke for the given Player. Use from a Script.|/RMD|
Tuple<Variant>InvokeServer ( Tuple<Variant> arguments )

Calls the method bound to the RemoteFunction by OnServerInvoke. Use from a LocalScript. Returns what OnServerInvoke returns.

|RMD member="API:Class/RemoteFunction/InvokeServer"|Calls the method bound to the RemoteFunction by OnServerInvoke. Use from a LocalScript. Returns what OnServerInvoke returns.|/RMD|
InvokeClient ( Player player, Tuple<Variant> arguments )
Calls the method bound to the RemoteFunction by OnClientInvoke for the given Player. Use from a Script.
InvokeServer ( Tuple<Variant> arguments )
Calls the method bound to the RemoteFunction by OnServerInvoke. Use from a LocalScript. Returns what OnServerInvoke returns.

Callbacks

Callbacks [toggle]

Tuple<Variant>OnClientInvoke ( Tuple<Variant> arguments )

Called when InvokeClient is called. Arguments passed to InvokeClient are passed to the function. Values returned by the function are returned by InvokeClient.

|RMD member="API:Class/RemoteFunction/OnClientInvoke"|Called when InvokeClient is called. Arguments passed to InvokeClient are passed to the function. Values returned by the function are returned by InvokeClient.|/RMD|
Tuple<Variant>OnServerInvoke ( Player player, Tuple<Variant> arguments )

Called when InvokeServer is called. Arguments passed to InvokeServer are passed to the function. Values returned by the function are returned by InvokeServer.

|RMD member="API:Class/RemoteFunction/OnServerInvoke"|Called when InvokeServer is called. Arguments passed to InvokeServer are passed to the function. Values returned by the function are returned by InvokeServer.|/RMD|
Called when InvokeClient is called. Arguments passed to InvokeClient are passed to the function. Values returned by the function are returned by InvokeClient.
OnServerInvoke ( Player player, Tuple<Variant> arguments )
Called when InvokeServer is called. Arguments passed to InvokeServer are passed to the function. Values returned by the function are returned by InvokeServer.

Events

Events [toggle]

Inherited from Object Icon.pngInstance:
AncestryChanged ( Instance child, Instance parent )

Fires when the Parent property of the object or one of its ancestors is changed.

|RMD member="API:Class/Instance/AncestryChanged"|Fires when the Parent property of the object or one of its ancestors is changed.|/RMD|
Changed ( string property )

Fires after a property of the object changes.

|RMD member="API:Class/Instance/Changed"|Fires after a property of the object changes.|/RMD|
Fires when the Parent property of the object or one of its ancestors is changed.
Changed ( string property )
Fires after a property of the object changes.

|RMD member="API:Class/RemoteFunction"|RemoteFunctions are used to create in-game APIs that both the client and the server can use to communicate with each other. Like BindableFunctions, RemoteFunctions can be invoked [called] to do a certain action, and return the results of this action. If the result is not needed then it is recommended to use a RemoteEvent instead, as its call is asynchronous and doesn't need to wait for a response to continue execution. Mind that there are some limitations. |/RMD|


Example

On the server (Script):
function RemoteFunction.OnServerInvoke(player, name)
	print("Hi, my name is", name, "and this invocation came from", player.Name)
	return player.Name
end
Hi, my name is John Doe and this invocation came from Player1


On the client (LocalScript):
print(RemoteFunction:InvokeServer("John Doe"))
Player1

See also