BindableEvent

Overview

BindableEvent can be used to implement communication between servers or between clients within the same environment.

BindableEvent Object

BindableEvent is an object provided to handle events within the same environment, supporting one-way communication.

💡 Tip. To clearly distinguish whether the communication is between Server to Server or Client to Client when using BindableEvent, it is recommended to use prefixes such as S2S_ or C2C_ in the name. This makes the event’s role intuitive and improves code readability and maintainability.

Implementing Communication with BindableEvent

When firing an event with BindableEvent, you can send arguments along with it. These arguments are passed when calling the Fire method and can be received by the callback function on the receiving side.

Server ➡ Server

In Script1

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local S2S_SomeEvent = ReplicatedStorage:WaitForChild("S2S_SomeEvent")

local function TestFire()
    local SomeText = "BindableEvents"
    S2S_SomeEvent:Fire(SomeText) -- Passing arguments
end

In Script2

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local S2S_SomeEvent = ReplicatedStorage:WaitForChild("S2S_SomeEvent")

local function OnSomeEvent(text)
    print("[SomeEvent]", "Parameter : ", text)
end
S2S_SomeEvent.Event:Connect(OnSomeEvent)

Client ➡ Client

In LocalScript1

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local C2C_SomeEvent = ReplicatedStorage:WaitForChild("C2C_SomeEvent")

local function TestFire()
    local SomeText = "BindableEvents"
    C2C_SomeEvent:Fire(SomeText) -- Passing arguments
end

In LocalScript2

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local C2C_SomeEvent = ReplicatedStorage:WaitForChild("C2C_SomeEvent")

local function OnSomeEvent(text)
    print("[SomeEvent]", "Parameter : ", text)
end
C2C_SomeEvent.Event:Connect(OnSomeEvent)

Last updated