Trying to recreate steep steps ladders | attempt to index nil with 'Name'

Explorer so I don’t have to type it all*
image

Main (LocalScript)

local players_Ladders = game.ReplicatedStorage:WaitForChild("players_Ladders")
local Ladder = game.ReplicatedStorage:WaitForChild("Ladder")
local player = game.Players.LocalPlayer

local spawnEvent = game.ReplicatedStorage.events:WaitForChild("spawn")
local deleteEvent = game.ReplicatedStorage.events:WaitForChild("delete")

local frame = script.Parent.Frame
local spawnbutton = frame.spawn	
local deletebutton = frame.delete


spawnbutton.MouseButton1Click:Connect(function()
	spawnEvent:FireServer(player.Name)
end)

deletebutton.MouseButton1Click:Connect(function()
	deleteEvent:FireServer(player.Name)
end)

MakePlayerLadder (Script)

local players_Ladders = game.ReplicatedStorage:WaitForChild("players_Ladders")
local Ladder = game.ReplicatedStorage:WaitForChild("Ladder")
local player = game.Players.LocalPlayer

local spawnEvent = game.ReplicatedStorage.events:WaitForChild("spawn")
local deleteEvent = game.ReplicatedStorage.events:WaitForChild("delete")

--give player ladde
game.Players.PlayerAdded:Connect(function(player)
	local newLadder = Ladder:Clone()
	newLadder.Name = player.Name.."_Ladder"
	newLadder.Parent = players_Ladders
end)


--spawn ladder
spawnEvent.OnServerEvent:Connect(function(username)
	local PlayerLadder = player.Name.."_Ladder" --error here
	players_Ladders.PlayerLadder.Parent = game.Workspace
end)

--delete ladder
deleteEvent.OnServerEvent:Connect(function(username)
	
end)

Getting error “attempt to index nil with ‘Name’”, not sure how to fix

FireServer doesnt require the Player as the event already has the Player

The First Argument for this Server Event is the Player and is Skipped when Firing it

spawnEvent.OnServerEvent:Connect(function(user)
	local PlayerLadder = user.Name.."_Ladder" --Fix here
	players_Ladders[PlayerLadder].Parent = workspace
end)

Plus, LocalPlayer cant be used on the Server, it never worked like that, and I’m not sure why you are trying to do it.

So This is basically RemoteEvent.OnServerEvent:

:Connect(function()
First Argument: Player,  Second Argument: any -- and so on
:FireServer()
Second Argument: ...:any -- This is a Tuple meaning it Accepts any Value (Actual Definition: Ordered List)