# RemoteEvent

RemoteEvent : `Instance`

## Overview

RemoteEvent는 클라이언트와 서버 간 이벤트 처리를 위해 제공되는 객체로, 비동기 단방향 통신을 지원합니다.

이 인스턴스는 서버와 클라이언트 양쪽에서 접근할 수 있어야 하므로, ReplicatedStorage나 Workspace처럼 공유 가능한 위치에 배치하는 것이 적절합니다.

## Properties

## Methods

### FireAllClients

서버에서 모든 클라이언트의 RemoteEvent에 연결된 이벤트를 실행할 때 사용하는 메서드입니다.

모든 클라이언트를 대상으로 하기 때문에 Player 인자를 지정하지 않습니다.

#### Parameters

| `Tuple` Arguments | <p>RemoteEvent의 OnClientEvent에 연결된 함수로 전달되는 인자입니다.</p><ul><li>number, boolean, string, table 등 Luau의 기본 자료형을 전달할 수 있습니다.</li><li>Instance 같은 객체도 전달할 수 있습니다.</li><li>모든 데이터 타입이 완전히 지원되는 것은 아니기 때문에, 사용 전 실제 동작을 확인해보는 것이 좋습니다.</li></ul> |
| ----------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

#### Return

| `void` |   |
| ------ | - |

#### Code Samples

```lua
-- Script
local Players = game:GetService("Players")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local S2C_DeadEvent = ReplicatedStorage:WaitForChild("S2C_DeadEvent")

local function EnterPlayer(player)
    local SomeText = "FireAllClients"
    S2C_DeadEvent:FireAllClients(SomeText) -- Passing arguments
end
Players.PlayerAdded:Connect(EnterPlayer)


-----------------------------------------------------------------------------------
-- LocalScript
local Players = game:GetService("Players")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local S2C_DeadEvent = ReplicatedStorage:WaitForChild("S2C_DeadEvent")

local function OnDeadEvent(text)
    print("[OnDeadEvent]", "Parameter : ", text)
end
S2C_DeadEvent.OnClientEvent:Connect(OnDeadEvent)
```

### FireClient

서버에서 특정 클라이언트의 RemoteEvent에 연결된 이벤트를 실행할 때 사용하는 메서드입니다.

대상 클라이언트를 지정하기 위해 Player 인자를 반드시 전달해야 합니다.

모든 클라이언트를 대상으로 이벤트를 실행하는 경우에는 FireAllClients()를 사용하는 것이 더 적합합니다.

#### Parameters

| `Player` Player   | 클라이언트의 이벤트를 실행할 Player입니다.                                                                                                                                                                                                                |
| ----------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `Tuple` Arguments | <p>RemoteEvent의 OnClientEvent에 연결된 함수로 전달되는 인자입니다.</p><ul><li>number, boolean, string, table 등 Luau의 기본 자료형을 전달할 수 있습니다.</li><li>Instance 같은 객체도 전달할 수 있습니다.</li><li>모든 데이터 타입이 완전히 지원되는 것은 아니기 때문에, 사용 전 실제 동작을 확인해보는 것이 좋습니다.</li></ul> |

#### Return

| `void` |   |
| ------ | - |

#### Code Samples

```lua
-- Script
local Players = game:GetService("Players")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local S2C_DeadEvent = ReplicatedStorage:WaitForChild("S2C_DeadEvent")

local SomeText = "FireClient"

local function EnterPlayer(player)
    S2C_DeadEvent:FireClient(player, SomeText) -- Passing arguments
end
Players.PlayerAdded:Connect(EnterPlayer)


-----------------------------------------------------------------------------------
-- LocalScript
local Players = game:GetService("Players")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local S2C_DeadEvent = ReplicatedStorage:WaitForChild("S2C_DeadEvent")

local function OnDeadEvent(text)
    print("[OnDeadEvent]", "Parameter : ", text)
end
S2C_DeadEvent.OnClientEvent:Connect(OnDeadEvent)
```

### FireServer

클라이언트에서 서버의 RemoteEvent에 연결된 이벤트를 실행할 때 사용하는 메서드입니다.

이벤트가 호출되면, 연결된 함수는 첫 번째 인자에 해당 요청을 보낸 클라이언트의 Player 객체를 받게 됩니다.

#### Parameters

| `Tuple` Arguments | <p>RemoteEvent의 OnServerEvent에 연결된 함수로 전달되는 인자입니다.</p><ul><li>number, boolean, string, table 등 Luau의 기본 자료형을 전달할 수 있습니다.</li><li>Instance 같은 객체도 전달할 수 있습니다.</li><li>모든 데이터 타입이 완전히 지원되는 것은 아니기 때문에, 사용 전 실제 동작을 확인해보는 것이 좋습니다.</li></ul> |
| ----------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

#### Return

| `void` |   |
| ------ | - |

#### Code Samples

```lua
-- LocalScript
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local C2S_EnterPlayer = ReplicatedStorage:WaitForChild("C2S_EnterPlayer")

local SomeNumber = 10
C2S_EnterPlayer:FireServer(SomeNumber) -- Passing arguments


-----------------------------------------------------------------------------------
-- Script
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local C2S_EnterPlayer = ReplicatedStorage:WaitForChild("C2S_EnterPlayer")

local function OnEnterPlayer(player, number)
    print("[OnEnterPlayer]", player.Name, " / Parameter : ", number)
end
C2S_EnterPlayer.OnServerEvent:Connect(OnEnterPlayer)
```

## Events

### OnClientEvent

RemoteEvent 인스턴스에서 FireClient() 또는 FireAllClients()가 호출되면 해당 인스턴스의 OnClientEvent에 연결된 모든 함수가 실행되며, 호출 시 전달된 인자는 연결된 함수로 그대로 전달됩니다.

#### Parameters

#### Code Samples

```lua
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local S2C_DeadEvent = ReplicatedStorage:WaitForChild("S2C_DeadEvent")

local function OnDeadEvent(text)
    print("[OnDeadEvent]", "Parameter : ", text)
end
S2C_DeadEvent.OnClientEvent:Connect(OnDeadEvent)
```

### OnServerEvent

RemoteEvent 인스턴스에서 FireServer()가 호출되면 해당 인스턴스의 OnServerEvent에 연결된 모든 함수가 실행되며, 호출 시 전달된 인자는 연결된 함수로 그대로 전달됩니다.

#### Parameters

#### Code Samples

```lua
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local C2S_EnterPlayer = ReplicatedStorage:WaitForChild("C2S_EnterPlayer")

local function OnEnterPlayer(player, number)
    print("[OnEnterPlayer]", player.Name, " / Parameter : ", number)
end
C2S_EnterPlayer.OnServerEvent:Connect(OnEnterPlayer)
```

## See also

{% content-ref url="/pages/rznBJB0DomrXzxffvYtu" %}
[서버-클라 통신](/korean/manual/script-manual/events-and-communication/remoteevent.md)
{% endcontent-ref %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.overdare.com/korean/development/api-reference/classes/remoteevent.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
