How would I get the character name?

Hello! So I have a script where it gets the characters name and sends it to the localscript but I keep getting errors?

Script:

for index,item in pairs(Characters:GetChildren()) do
	if item:FindFirstChild("Humanoid") then
		local ViewportFrame = Instance.new("ViewportFrame")
		ViewportFrame.Parent = Content
		ViewportFrame.BackgroundTransparency = 1

		local Button = Instance.new("TextButton")
		Button.Parent = ViewportFrame
		Button.Position = UDim2.new(0,0,1,0)
		Button.Size = UDim2.new(1,0,0,25)
		Button.BorderSizePixel = 0
		Button.BackgroundColor3 = Color3.fromRGB(255,255,255)
		Button.TextScaled = true

		local Preview = item:Clone()
		Preview.Parent = ViewportFrame
		Button.Text = "Play As "..Preview.Name

		local Camera = Instance.new("Camera")
		Camera.Parent = ViewportFrame
		Camera.CFrame = Preview.Head.CFrame + Preview.Head.CFrame.LookVector * 5
		Camera.CFrame = CFrame.new(Camera.CFrame.Position,Preview.Head.Position)

		ViewportFrame.CurrentCamera = Camera

		Button.MouseButton1Down:Connect(function()
			Button:Destroy()
			script.Parent.Enabled = false
			local ChosenCharacter = item:Clone()
			local CurrentCharacter = Player.Character
			local LocalScripts = {}

			for index2,item2 in pairs(game.StarterPlayer.StarterCharacterScripts:GetChildren()) do
				if item2:IsA('LocalScript') then
					table.insert(LocalScripts,item2:Clone())
				else
					item2:Clone().Parent = ChosenCharacter
				end
			end
			
			game.ReplicatedStorage.RemoteEvents.CharacterChoosen2:FireClient(Player, ChosenCharacter)

LocalScript:

game.ReplicatedStorage.RemoteEvents.CharacterChoosen2.OnClientEvent:Connect(function(ChosenCharacter)
	script.Parent.Parent.Character.Value = ChosenCharacter
end)

why not just set charactervalue in server instead of localscript

I need it in local script so I can use it for voicelines stuff so the localscript knows witch player is witch

you can just make new objectvalue and then from localscript get it

you dont really understand. I kinda want the character name just to go in the value from a local script thats all but its not working.

Can you just use a RemoteEvent to get the Player?