This resource is a simple RPC library for FiveM. It allows you to call methods on remote side and receive return values.
- Copy this resource to your
resources
directory. Resource name should befivem-rpc
. - Include client_script
'@fivem-rpc/lib.lua'
in your__resource.lua
.
-- server-side
RPC.Register("getGreetingMessage", function (params, ret, player)
local message = "Hello, "..tostring(GetPlayerName(player)).."!"
if type(params.text) == "string" then
message = message.." "..params.text
end
return message
end)
-- client-side
RPC.Call("getGreetingMessage", { text = "Params passed by client" }, function (message)
Citizen.Trace("Greeting message: "..tostring(message))
end)
You can also do asynchronous calls inside FiveM threads:
-- client-side
Citizen.CreateThread(function ()
local message = RPC.CallAsync("getGreetingMessage", { text = "Params passed by client" })
Citizen.Trace("Greeting message: "..tostring(message))
end)
You can find working example code in fivem-rpc/example
folder.
name<string>
- remote method namecallback<function>
- method function (see method callback)
Registers new method that can be called from remote side.
RPC.Register("doSomething", function (params, ret, player)
return "Hello from server"
end)
params<table>
- params passed to method by remote callerplayer<player>
- player who called this method (only for server-side)ret<function>
- function for returning values asynchronously
ret
function can be used to return values asynchronously:
RPC.Register("doSomething", function (params, player, ret)
Citizen.SetTimeout(1000, function ()
ret("Hello from server (but delayed)")
end)
end)
If you return anything from method callback, ret
will be ignored and return value will be passed to caller (see first callback example).
name<string>
- method nameparams<table>
- params passed to methodcallback<function>
- callback called when results are receivedplayer<player>
- optional player source to call method on (only for server-side)
Calls remote method.
name<string>
- method nameparams<table>
- params passed to methodplayer<player>
- optional player source to call method on (only for server-side)- returns
result<any>
- any data returned by remote method
Calls remote method asynchronously. Can only be used inside Citizen.CreateThread
.
name<string>
- method nameparams<table>
- params passed to methodplayer<player>
- optional player source to call method on (only for server-side)
Calls remote method without receiving return values.