Scripting HelpersARCHIVE
A little piece of Roblox history. Preserved for everyone, one question at a time.Read about the archive →
✓ ANSWER ACCEPTED

remote event FE script wont work?

so I'm making a script where if you have a badge it makes a certain brick's can collide property set to false only for the client, here's my script that won't work 100%

regular script that's in the brick that i want to be can collide false:

local repStorage = game:GetService("ReplicatedStorage")
local remote = repStorage:WaitForChild("Remote")

remote.OnClientEvent:Connect(function(player)
    script.Parent.CanCollide = false
end)

i have a number value and a script that changes the number depending on what badge you have, the local script reads it

here's the local script in the playergui and its a child of the numbervalue:

local repStorage = game:GetService("ReplicatedStorage")
local remote = repStorage:WaitForChild("Remote")

if script.Parent.Value == 1 then
    remote:FireClient()
end

1 comment

0

FireClient needs a player argument but OnClientEvent doesn’t have a player argument

2 answers

✓ Accepted answer

###Your scripts are backwards. The local script should be listening for OnClientEvent, and the server should be firing to the client, and remove the player parameter on OnClientEvent.

-- LocalScript in PlayerGui
local repStorage = game:GetService("ReplicatedStorage")
local remote = repStorage:WaitForChild("Remote")

remote.OnClientEvent:Connect(function()
    workspace.Part.CanCollide = false -- i don't know where the part is, replace Part with name
end)

###Server code under the part:

-- Server script
local Players = game:GetService("Players")
local repStorage = game:GetService("ReplicatedStorage")
local remote = repStorage:WaitForChild("Remote")

script.Parent.Touched:Connect(function(part) 
    -- You need to get the player, I will use a Touched event

    local plr = Players:GetPlayerFromCharacter(part.Parent)
    
    if plr then -- make sure is a player!
        remote:FireClient(plr) -- done
    end
end)

1 comment

0

thanks man

you will need it to look like:

if script.Parent.Value == 1 then
	remote:FireClient(player) -- if a player is specified
end

This discussion is preserved as it was. New answers, comments, and votes are closed.