Remote event attempt to index nil with 'Name'

You can write your topic however you want, but you need to answer these questions:

  1. What do you want to achieve? Keep it simple and clear!
    So I want to make a trading system. U can trade pets and other items.

  2. What is the issue? Include screenshots / videos if possible!
    I have a little bit of a problem tho!
    So basically I have a localscript inside of a textbutton. When you press this textbutton I want a request to pop up on the player’s screen that you want to trade with. I want to do this with remote events and bindable events. I’ll show you the script from the client and server now.


script.Parent.MouseButton1Click:Connect(function()
	--//my variables\\--
	local PlayerGui = script.Parent.Parent.Parent.Parent.Parent.Parent
	local player1 = PlayerGui.Parent -- This is the player who sent the request
	local player2 = game.Players:FindFirstChild(script.Parent.Parent.Text)
	
	if player2 then
		print(player2.Name)
	end
	
	--//functions\\--
	if player2 and player2:FindFirstChild("IsTrading") and player2:FindFirstChild("TradingDisabled") then
		if player2.IsTrading.Value == false and player2.TradingDisabled.Value == false then
			
			--//I'm just trying to make sure that everything exists before i set a variable to something inside a different player\\--
			local Request = player2.PlayerGui.TradeRequest
			local SetTradeValues = game.ReplicatedStorage:WaitForChild("SetTradeValues")
			if Request then
				Request:Fire(player1.Name) -- ignore this event, it has nothing to do with the error
				SetTradeValues:FireServer(player1.Name, player2.Name)
			end
		end
	end
end)

Now I’ll show you the server script and that’s also where the error is!


game.Players.PlayerAdded:Connect(function(player)
	--//new instances\\--
	local IsTrading = Instance.new("BoolValue", player)
	IsTrading.Name = "IsTrading"
	local TradingDisabled = Instance.new("BoolValue", player)
	TradingDisabled.Name = "TradingDisabled"
	local Requester = Instance.new("StringValue", player)
	Requester.Name = "Requester"
end)

game.ReplicatedStorage:WaitForChild("SetTradeValues").OnServerEvent:Connect(function(player1name, player2name)
	print("Event arrived")
	local player1 = game.Players:FindFirstChild(player1name)
	local player2 = game.Players:FindFirstChild(player2name)
	print(player1.Name, player2.Name) -- It doesn't know what I mean with Name
	if player1 and player2 then -- And this function doesn't fire because it thinks Name is nil!
		player2.Requester.Value = player1.Name
		print(player1.Name .. "would like to trade you!")
	end
end)

  1. What solutions have you tried so far? Did you look for solutions on the Developer Hub?
    I can’t really find any solutions for this. Maybe there are and I’m just blind.

How can I fix this error?
And why can’t it find the player in game.Players?
This my first ever post and I don’t know if it’s in the correct category, so sorry if I made any mistakes!

1 Like

The FireServer() returns the player who fired first

Client

Remote:FireServer(Player2)

Server

Remote.OnServerEvent:Connect(function(Player1, Player2)

Player1 being the client who fired server

2 Likes

When receiving a server event from a localscript, it should look like this:

remoteevent.onServerEvent:Connect(function(plr, player1name, player2name)
    --Your code here
end)

My typing is kind of slow :frowning:

1 Like

It works now! Thanks for helping