I made a giver that when you touch the part, a screen GUI appears. When the screen GUI appears I wanted it to fire a remote function to the server which then spawns the tool. I believe it has something to do with the Server script when the tool is supposed to spawn, but I'm not sure. I'm just trying to adjust after experimental mode was removed, any help would be appreciated!
--Local Script/Client
script.Parent.MouseButton1Click:Connect(function()
game.ReplicatedStorage.O1TierEvent:FireServer()
end)
--Script/Server
game.ReplicatedStorage.O1TierEvent.OnServerEvent:Connect(function()
local tool = script.Parent.OrangeswordTier1:Clone()
tool.parent = game.Players.LocalPlayer.Backpack
end)

2 comments
you might need to replace the player in the server script with something else since it needs to know which player it is, this is done with game.Players:GetPlayerFrom from the place here,
It works with "tool.Parent = player.Backpack" when you add player as an argument now. Although I see what you mean by doing ":WaitForChild". Thanks for the help!