Blink's Language
Functions

Functions

Functions are Blink's version of Roblox's RemoteFunction.
They provide a way for the client to request information from the server.

Usage in Blink

Functions can be defined using the function keyword.

function MyFunction {
    Yield: Coroutine,
    Data: f64,
    Return: f64
}

Yield

Determines the library used to handle yielding to the requester.

  • Coroutine - The builtin Luau coroutine library.
  • Future - The user provided future library, use of redblox's future library is recommended.
  • Promise - The user provided promise library, use of evaera's promise library (or forks of it) is recommended.

Data

The data sent to the server by the client.
For more information take a look at the data field for events.

Return

The data returned by the server to the client.
For more information take a look at the data field for events.

Usage in Luau

Invoking a Function

client-coroutine.luau
local Value = blink.MyFunction.Invoke(5)
client-future.luau
local Future = blink.MyFunction.Invoke(5)
local Value = Future:Await()
client-promise.luau
local Promise = blink.MyFunction.Invoke(5)
local Value = Promise:await()

Listening to a Function

server.luau
blink.MyFunction.On(function(Player, Value)
    return Value * 2
end)