RemoteEvent
The RemoteEvent object facilitates asynchronous, one-way communication across the client-server boundary without yielding for a response. This communication can be directed from one client to the server, from the server to a specific client, or from the server to all clients.
In order for both the server and clients to access a RemoteEvent instance, it must be in a place where both sides can see it, such as ReplicatedStorage, although in some cases it's appropriate to store it in Workspace or inside a Tool.
If you need the result of the call, you should use a RemoteFunction instead. Otherwise a remote event is recommended since it will minimize network traffic/latency and won't yield the script to wait for a response.
See Remote Events and Callbacks for code samples and further details on RemoteEvent.
Parameter Limitations
Any type of Roblox object such as an Enum, Instance, or others can be passed as a parameter when a RemoteEvent is fired, as well as Luau types such as numbers, strings, and booleans, although you should carefully explore the limitations.
Summary
Methods
Fires the OnClientEvent event for each client connected to the same RemoteEvent.
Fires the OnClientEvent event for a specific client connected to the same RemoteEvent.
Fires the OnServerEvent event on the server from one client connected to the same RemoteEvent.
Events
Fires from a LocalScript when either FireClient() or FireAllClients() is called on the same RemoteEvent instance from a Script.
Fires from a Script when FireServer() is called on the same RemoteEvent instance from a LocalScript.