Scripting Helpers is winding down operations and is now read-only. More info→
Ad
Log in to vote
0

Please tell me how to use remote events I really need them(?)

Asked by 2 years ago
I'm making two games, one on my own, and one with my friend. I've paused working on like 11 things now because they require remote events and  I don't know how to use them. Please just gimme an example on how they work, bc I've tried like 30 tutorials and they all follow what happens when you try to perform an action on a localscript, and not when you want to do something like (Triggering a prompt in the workspace, then giving an item to a player). I'm begging anyone at this point.
1
I don't want to be that kind of person, but I think you should've checked Roblox's developer hub for something like this https://developer.roblox.com/en-us/articles/Remote-Functions-and-Events LazokkYT 117 — 2y
0
For ex, you can detect when the player triggers a prompt, then fireserver with all the arguments (player, tool/s to give,) then doing it in a server. LazokkYT 117 — 2y
0
Yes. I know how they work, but I don't know the code to make it work. AbettrWesley 6 — 2y

3 answers

Log in to vote
0
Answered by 2 years ago

A RemoteEvent is designed to provide a one-way message between the server and clients, allowing Scripts to call code in LocalScripts and vice-versa. This message can be directed from one client to the server, from the server to a particular client, or from the server to all clients.

0
Thank you, I know what they're used for and what they do, but I don't know how to make them transfer a script function, like let's say a proximity prompt in the workspace, to play an animation when triggered, or when something is destroyed in the workspace, give the player who destroyed it an item. AbettrWesley 6 — 2y
Ad
Log in to vote
0
Answered by 2 years ago

Take your comment as an example, to “give the player who destroyed it an item”.

--local script

workspace.PartToDestroy.ClickDetector.MouseClick:Connect(function() --placeholder event, it can be whatever you need for your gameplay to destroy a part
    game.ReplicatedStorage.RemoteEvent:FireServer(workspace.PartToDestroy.Name)
end)

After the player does something to destroy a part, it fires a RemoteEvent to tell the server a part needs to be destroyed, along with some values: the player (you don’t need to put this in the brackets, this sends by default and cannot be removed), and whatever you pass along in the brackets. In this case it would be the name of the part we are destroying.

--sever script

game.ReplicatedStorage.RemoteEvent.OnServerEvent:Connect(function(player, partName)
    workspace[partName]:Destroy()
    script.WhateverItem:Clone().Parent = player.Backpack
end)

After the server recieves the RemoteEvent being fired, it destroys the part and clones a tool to put into the player’s backpack.

Log in to vote
0
Answered by 2 years ago
Edited 2 years ago

Hello Buddy,

Don't Know what remote Events do?. No problem there are many resources to learn this from. I will give some personal Examples and Explanations too. Lets get Started

What Are Remote Events?

Remote Events Are used when the Client has to communicate to Server or the Server has to Communicate with Client(s). for example we set up a Currency System, so we will use remote Events to send the server a request and the server will check if we have the desired amount of money, if the player has the money than it will give the tool by a remote Event

Tip: Best place to put remote Events are, is Replicated Storage

Send Message(s) from Client to Server

Roblox by default Sets it so when you are in a local Script you can only fire Events to server.

First of all, Define the Remote Event in your Script

local script Example


local Event = game.ReplicatedStorage.RemoteEvent <---

You can Send Data to the Server or you can just Call the function. Another part of Remote Functions is Sending Data. you can Start or Activate the Event by doing :FireServer() if used in a local Script

Firing Event Example


local Event = game.ReplicatedStorage.RemoteEvent

Event:FireServer() <---

Sending Data through Remote Events is simple. Just create your Own Parameters.

Sending Data


local Text = "Hello World" <---

local Event = game.ReplicatedStorage.RemoteEvent

Event:FireServer( Text ) <--- 
                    ^1st Parameter

Always remember your parameter, Name doesn't Matter you just have to keep in mind whether if its first Parameter or second. In my case Text is the first Variable. if you need To add more data, Just Separate the Parameters using "," (Comma).

Sending Extra Data


local Text = "Hello World" <---

local Bool = true <---

local Event = game.ReplicatedStorage.RemoteEvent

Event:FireServer( Text , Bool ) <--- 
                    ^1st   ^2nd

Receive Data from Server Sent from a Client

This may get more confusing!, but with practice you can learn very quickly and even master this part of script.

First of All Define the Event

Server Sided Script Example


local Event = game.ReplicatedStorage.RemoteEvent

To receive the :FireServer() event we did on the client sided (Local Script), we will connect a function to .OnServerEvent to a function(Parameters Will Be here)

Code Example, Server Sided Script


local Event = game.ReplicatedStorage.RemoteEvent

Event.OnServerEvent:Connect(function() 
    -- Script will be here
end)

To get the remaining Parameters we will do something like below BUT always remember that the first Parameter we received will be the Player who Fired the event. If u don't need the Player you can just define the parameter and not use it, but for scripters it will be useful later.

Code Example, Receiving Data Server-sided


local Event = game.ReplicatedStorage.RemoteEvent

Event.OnServerEvent:Connect(function(Player, text, bool) 
    print(text)                          ^    ^1st  ^2nd 
    print(bool)                          |
end)                                   [ Always Define Player because Roblox on default sets first Parameter to Player]

Sending Messages to Client(s)

Slightly Different from Client sided Remote Event. The server Has the power to fire the Event to a client or to All clients


it is very simple to Send a message to a client.

First Define the Event


local Event = game.ReplicatedStorage.RemoteEvent <---

Fire the Event like below and send addition Data like we did in local script in the "Send Message(s) from Client to Server" Topic above,

Code Example, Sending Message to A client


local Event = game.ReplicatedStorage.RemoteEvent

local text = "Hello" <---

local Player = "AbettrWesley"

Event:FireClient(Player ,text) <---
                          ^1st Parameter

We can send Additional Data after the Player Parameter, Don't forget to define Player or else the script wont work

Code Example,


local Event = game.ReplicatedStorage.RemoteEvent

local Message = "Hello!"

Event:FireClient( Message )
                   ^1st Parameter 

Now we can send Messages to Client lets now receive the message through local script. it is possible through .OnClientEvent

Code Example, Receiving server message


local Event = game.ReplicatedStorage.RemoteEvent

Event.OnClientEvent:Connect(function(,Message) <---
    print(Message)                    ^1st Parameter
end) 

Sending Message to all clients is Easy. Message will be received to every client in game and will not need the Player Parameter when Receiving Data!. to fire all clients do :FireAllClients()

First of All define the Event

Code Example, Sending Message to All Clients


local Event = game.ReplicatedStorage.RemoteEvent

local Message = "Hello!"

Event:FireAllClients(Message) <---

Receiving from :FireAllClients() in local script can be done by the script below. Does not need the Player Parameter.

Code Example, Receiving server message

local Event = game.ReplicatedStorage.RemoteEvent

Event.OnClientEvents:Connect(function(message)
print(message)                         ^1st Parameter
end



I Hope This Helped Else there are some Resources Below

Remote functions and Events - By Roblox

Remote Events - By TheDevKing

Please UpVote because it took me 2.5 HOURS to write this

Answer this question