How do i fire an event for 2 players from the server script

When i try to use FireClient(player1,player2) i get the error
13:08:56.290 Players.Notatrxp.PlayerScripts.Syncer:7: attempt to index nil with ‘Name’ - Client - Syncer:7
Using FireAllClients(player1,player2) works however all players in the server see what only the player 1 and player 2 are supposed to see

This is my server script: local ReplicatedStorage = game.ReplicatedStorage
local Event1 = ReplicatedStorage.Pairing
local Event2 = ReplicatedStorage.Paired
local players = game.Players
local PairingMenu = ReplicatedStorage.PairingMenu:Clone()

local PairedAccepted = ReplicatedStorage[“Paired Accepted”]:Clone()
local function Triggered(player1,player2)
local PairingMenu2 = PairingMenu:Clone()
local Frame = PairingMenu2.Frame
local Text = Frame.TextLabel
local Yes = Frame.Yes
local No = Frame.No
PairingMenu2.Parent = player1.PlayerGui
Text.Text = “”…player2.Name…“Sent you a pair”…“”
Yes.MouseButton1Click:Connect(function()
Event1:FireClient(player1,player2)
print(player2)
PairingMenu2:Destroy()
local Paired = PairedAccepted:Clone()
Paired.Parent = player1.PlayerGui
local Paired2 = Paired:Clone()
Paired2.Parent = player2.PlayerGui
wait(0.5)
Paired2:Destroy()
Paired:Destroy()
end)

end

local function OnCharacterAdded(Character,player1)
local Prompt = Instance.new(“ProximityPrompt”)
Prompt.Parent = Character
Prompt.Triggered:Connect(function(player2)
Triggered(player1,player2)

end)

end

players.PlayerAdded:Connect(function(player)
player.CharacterAdded:Connect(function(character)
OnCharacterAdded(character,player)
end)
end)

And this is my local script:
local ReplicatedStorage = game.ReplicatedStorage
local RemoteEvent1 = ReplicatedStorage.Pairing
local RemoteEvent2 = ReplicatedStorage.Paired

RemoteEvent1.OnClientEvent:Connect(function(player1, player2)
print(player1.Name) – Capitalized “Name” property
print(player2.Name)

if player1.Character and player2.Character then
	local CharacterPlr1 = player1.Character
	local CharacterPlr2 = player2.Character

	local Pillar1 = workspace.Pillar1
	local Pillar2 = workspace.Pillar2 -- Consistent capitalization

	Pillar1.BrickColor = BrickColor.new("Really red")
	Pillar2.BrickColor = BrickColor.new("Really red")
end

end)
I have no idea how to fix it

You need to fire the event for each player. So you fire it for Player1 with the additional argument of Player2 being passed to the client. If you want Player2 to also receive the information, you need to fire it to Player2 also.

Event1:FireClient(player1, player2) -- remote is fired for player1, not player 2
Event1:FireClient(player2) -- this will fire to player2

Hey thanks for the tip it helped me out figuring it out, the actual issue was that in my script Event1:FireClient(player1, player2) I wasn’t aware that FireClient(ThePersonUrSending,Information) was a thing so when my local script kept reading out nil I wasn’t aware of why. The fix is just get rid of the player 2 information on my local script, Thank you for helping me out!

Hey! Next time when making a post related to a scripting problem, put it in #help-and-feedback:scripting-support. This way you can mark someone’s answer as the solution to your post.

4 Likes

Just adding to this, edit your post and move to that category. You might end up with a forum warning by not doing so.

1 Like