'Value' 的错误参数 #3(预期字符串,得到对象)- 我该如何解决这个问题?

bad argument #3 to 'Value' (string expected, got Object) - How do I fix this?

我已经查看了许多其他问题及其答案,但我似乎仍然无法修复此错误消息。我正在写一个脚本,允许一个玩家改变另一个玩家的脸。由于新的 ROBLOX 更新它是 FE 兼容的,因此我将把本地脚本和服务器脚本都放在下面,即使错误在服务器脚本中。

本地脚本:

plr = script.Parent.Parent.Parent.NameInput.Text

script.Parent.MouseButton1Click:Connect(function()
    script.Parent.RemoteEvent:FireServer(plr)
end)

服务器脚本:

faceid = script.Parent.FaceID.Value

script.Parent.RemoteEvent.OnServerEvent:Connect(function(plr)
    script.Parent.PName.Value = plr
    local plrname = script.Parent.PName.Value
    print (plrname)
    game.Players[script.Parent.PName.Value].Character.Face.Texture = faceid
end)

层次结构: This is the image of the hierarch of the GUI I am creating

错误信息: This is the image of the error I am receiving when I press the 'Test Face' button which is named 'One' in the explorer.

服务器脚本有点混乱,因为我尝试了几种不同的方法来解决此错误,所以如果您认为我可以更改任何内容或 add/remove 任何内容,我将不胜感激。然而,目前的主要问题是我在第 4 行遇到的错误。第 7 行也有一个先前的错误,它说 'bad argument #2 to '?' (string expected, got Object)',但我想先解决这个问题。如果试图帮助我的人认为有必要,我们将不胜感激。

提前谢谢你, 洛汗

而不是使用 plr 你应该使用 plr.Name 来获取 plr 的名称。这样,你将告诉系统玩家的名称而不是获取对象.

faceid = script.Parent.FaceID.Value

script.Parent.RemoteEvent.OnServerEvent:Connect(function(plr)
    script.Parent.PName.Value = plr.Name -- edit was here
    local plrname = script.Parent.PName.Value
    print (plrname)
    game.Players[script.Parent.PName.Value].Character.Face.Texture = faceid
end)